在Android开发中,或者说在任何开发中都避免不了使用定时器。定时器,顾名思义,就是规定一个时间间隔,在一个时间倒计时之后,去执行或者去做另外一个事件。
例如,本次我想做一个弹出对话框自动关闭的小功能。当然,实现这个功能的方法有很多,线程什么的都可以,Timer是由java提供抽取出来的定时器类。
今天没有效果图,因为效果是一个弹出的对话框在N秒之后自动关闭。直接代码:
public void autoClose(int time, AlertDialog dialog) {
// TODO Auto-generated method stub
Timer timer = new Timer();
timer.schedule(new MyTask(dialog),time);
}
static class MyTask extends TimerTask{
private AlertDialog dialog;
public MyTask(AlertDialog dialog){
this.dialog = dialog;
}
@Override
public void run() {
// TODO Auto-generated method stub
dialog.dismiss();
}
}
以上是Util类中的一部分,MyTask是定义在Util中的一个内部类。autoClose是提供给外部的调用方法。需要传递的参数是一个时间,一个View控件。因为本项目中用于AlertDialog,所以就传递了一个Dialog。
Timer的schedule方法,就是定时器的调用方法,需要传递两个参数,一个是TimerTask,一个是时间。根据不同的需要,可以自定义Task,使之继承TimerTask,并实现run方法。在run方法中实现n秒后要执行的代码。