1. 概述
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
TimerTask运行在一个单独的线程里,而不是UI线程。所以使用timer时,注意android的单线程原则,确保线程安全。不要在TimerTask的run方法中做UI相关的操作。如:TextView.setText()等,这样可能会导致UI线程阻塞。如果需要可以使用handler向UI线程发消息,具体处理由UI线程自己完成。在使用完Timer之后,要使用Timer的cancel方法取消Timer,否则Timer一直在运行。
2. Timer类的方法
schedule(TimerTask task, long delay, long period)
schedule(TimerTask task, Date time, long period)
scheduleAtFixedRate(TimerTask task, long delay, long period)
scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
3. 程序示例
//定义timer和timertask
private Timer myTimer = new Timer();
private TimerTask DateTimeTask = new TimerTask(){
@Override
public void run(){
Message msg = new Message();
msg.what = 0x124;
myGetTimeHandler.sendMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showTimeTextview = (TextView)findViewById(R.id.TimeTextview);
showDateTextview = (TextView)findViewById(R.id.DateTextview);
//在这里 启动timer
myTimer.schedule(DateTimeTask, 0, 10000);//单位是毫秒
}
参考文档