当前位置: 移动技术网 > IT编程>开发语言>Java > Android中handler倒计时

Android中handler倒计时

2019年02月13日  | 移动技术网IT编程  | 我要评论
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();
}
}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网