本文主要介绍了Android中定时器的四种实现方式的总结以及实现实例的相关资料。这里详细解释了定时器,并附上了示例代码。有需要的朋友可以参考一下。
Android中实现定时器的四种方式
第一种方式利用Timer和TimerTask
1.继承关系
java.util.Timer
基本方法
日程安排
例如:
timer.schedule(任务、延迟、周期);
//delay long,period long:从现在开始延迟毫秒过去后,每隔毫秒执行一次。
计划方法有三个参数。
第一个参数是TimerTask类型的对象,我们对TimerTask的run()方法的实现是一个要定期执行的任务;
第二个参数有两种类型,第一个是long,表示开始执行需要多长时间,另一个是Date,表示在那个时间之后开始执行;
第三个参数是执行周期,类型为long。
2、
TimerTask task=new TimerTask() {
@覆盖
公共无效运行(){
数数;
Log.i('MainActivity ',count ' ');
}
};
//以下是计划任务的几种方法:
//time是日期类型:在指定的时间执行一次。
timer.schedule(任务,时间);
//第一次的类型是Date,周期很长,这意味着从第一次开始每隔毫秒执行一次。
timer.schedule(任务、首次、周期);
//delay是长类型:从现在开始延迟毫秒后执行一次。
timer.schedule(任务,延迟);
//delay long,period long:从现在开始延迟毫秒过去后,每隔毫秒执行一次。
timer.schedule(任务、延迟、周期);
注意:任务应该在onDestory()中取消,否则可能会崩溃。
3.即使使用TimerTask进行某些操作的APP定期退出,它仍然会在TimerTask中运行一段时间,但不能长时间运行。
第二种方式 使用CountDownTimer
1、演示
CountDownTimer cdt=新的CountDownTimer(10000,100) {
@覆盖
公共void on tick(long millisuntil finished){
TV _ hello . settext(millisUntilFinished ' ');
}
@覆盖
public void onFinish() {
}
};
CDT . start();
2.上面的例子是
onTick中的方法每100毫秒执行一次。
直到10000/100次,最后才会执行onFinish()中的方法。
第三种方式 AlarmManager
演示:
intent intent 2=new intent(readlogservice . this,test broadcast . class);
PendingIntent PD=PendingIntent . get broadcast(getApplicationContext(),0,intent2,PendingIntent。FLAG _ ONE _ SHOT);
ALARM manager am=(ALARM manager)getsystem SERVICE(ALARM _ SERVICE);
long trigger time=system clock . elapsedrealtime()5 * 1000;
am.set(AlarmManager。ELAPSED_REALTIME,triggerTime,PD);
第四种方式 AlarmManager
handler . senemptymessagedelayed(0,4000);//启动处理程序,实现4秒周期执行。
私有处理程序handler=new Handler(){
public voidhandleMessage(Android . OS . message msg){
if(isChange){
//逻辑处理
handler . senemptymessagedelayed(0,4000);//4秒后再次执行
}
}
};
感谢您的阅读,希望能帮到您,也感谢您对本站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。