Android中handler倒计时
程序员文章站
2023-12-25 16:10:21
import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message; import java.util.Timer;import java.util.Ti ......
import android.content.intent;
import android.os.bundle;
import android.os.handler;
import android.os.message;
import java.util.timer;
import java.util.timertask;
public class **activity extends baseactivity{
private int time;
private timer mtimer;
// 使用handler实现子线程发送消息到主线程
@suppresslint("handlerleak")
private handler handler = new handler(){
@override
public void handlemessage(message msg) {
super.handlemessage(msg);
time = (int)msg.obj;
if (time<5){
timertask();
}else {
intent intent = new intent(flashscreenactivity.this,mainactivity.class);
startactivity(intent);
mtimer.cancel();// 停止倒计时
finish();// 用于闪屏页时关闭此activity,在用户按返回按钮时,不会再回到此页面
}
}
};
@override
protected void oncreate(@nullable bundle savedinstancestate) {
super.oncreate(savedinstancestate);
timertask();// 调用计时器方法
}
private void timertask() {
mtimer = new timer();
timertask mtask = new timertask() {
@override
public void run() {
time++;
message message = new message();
message.obj = time;
handler.sendmessage(message);
}
};
// 第一个参数"new mytask(event.getservletcontext())": 是 timertask 类,在包:import java.util.timertask .
// 使用者要继承该类,并实现 public void run() 方法,因为 timertask 类实现了 runnable 接口。
// 第二个参数"0"的意思是:(0就表示无延迟)
// 制定timer定时器第一次调用run方法的时间,0表示不指时间,立刻调用。一般这个参数指定的时间格式是:yyyy-mm-dd hh:mm:ss
mtimer.schedule(mtask,1000);
}
/**
* 防止内存泄漏(如果不停止,倒计时会在程序内一直执行,知道进程消失)
* 销毁时释放资源
*/
@override
protected void ondestroy() {
super.ondestroy();
mtimer.cancel();
finish();
}
}
推荐阅读
-
Android中handler倒计时
-
Android TextView 在java代码中改变字体的颜色的方法
-
android textview 添加下划线 中划线 删除线
-
Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题
-
Android 布局中设置 圆形或圆角图片
-
php中set_error_handler的用法总结
-
Android中ACTION_CANCEL的触发机制与滑出子view的情况
-
Android Handler的使用详解
-
Android的线程通信:消息机制原理(Message,Handler,MessageQueue,Looper),异步任务AsyncTask,使用JSON
-
Android中Activity之间跳转和参数传递的实例