Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。
TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。
Timer使用方法:
Timer timer = new Timer(true);//声明
timer.schedule(timerTask, 0, 2000);//0s后执行,2s执行一次
// timer.cancel();//结束
TimerTask:
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
toCheckStudy();//执行的具体方法
}
};
TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。
提示:不要在Timer中对UI进行更新(会报错),若有需要,可以配合handler一起使用。
TimerTask:
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
handler.sendEmptyMessageDelayed(1,1000);
}
};
handler:
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==1){
text.setText("askdnlaks");
}
}
};
经试验在TimeTask中开启一个线程去更新UI,报错。