在jdk自带的库中,有两种技术可以实现定时任务。一种是使用Timer,另外一个则是ScheduledThreadPoolExecutor
这篇先讲解Timer
Timer
1.Timer的使用
private Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Log.d(TAG,"=======: "+i++);
}
},3000,3000);
执行后:
2020-01-01 00:11:53.053 4230-4230/com.example.demoo D/demo: Touch
2020-01-01 00:11:56.055 4230-4258/com.example.demoo D/demo: =======: 0
2020-01-01 00:11:59.054 4230-4258/com.example.demoo D/demo: =======: 1
2020-01-01 00:12:02.054 4230-4258/com.example.demoo D/demo: =======: 2
2020-01-01 00:12:05.055 4230-4258/com.example.demoo D/demo: =======: 3
2020-01-01 00:12:08.054 4230-4258/com.example.demoo D/demo: =======: 4
通过往Timer提交一个TimerTask的任务,同时指定多久后开始执行以及执行周期,我们可以开启一个定时任务。
scheduleAtFixedRate参数:
1.TimerTask 实现Runnable 类
2.开始执行前的延时时间
3.执行任务间隔时间
2 Timer源码解析
https://my.oschina.net/wangfushu/blog/1645134
https://blog.csdn.net/u013332124/article/details/79587436