类名为MyTimeTask的工具类:
import java.util.Timer;
import java.util.TimerTask;
public class MyTimeTask {
private Timer timer;
private TimerTask task;
private long time;
public MyTimeTask(long time, TimerTask task) {
this.task = task;
this.time = time;
if (timer == null) {
timer = new Timer();
}
}
public void start() {
timer.schedule(task, 0, time);//每隔time时间段就执行一次
}
public void stop() {
if (timer != null) {
timer.cancel();
if (task != null) {
task.cancel(); //将原任务从队列中移除
}
}
}
}
使用方法
var task: MyTimeTask? = null;
companion object {
//定义发送handle的标志,全局常量,不重复就行
const val TIMER = 999
}
//开始执行任务的时候,调用 setTimer() 就可以了
fun setTimer() {
//3000是毫秒,每多长时间执行一次
task = MyTimeTask(3000, object : TimerTask() {
override fun run() {
mHandler.sendEmptyMessage(TIMER);
}
});
task?.start();
}
val mHandler: Handler = object : Handler() {
override fun handleMessage(msg: Message?) {
super.handleMessage(msg)
when (msg?.what) {
TIMER -> {
//定时执行的任务具体操作
}
else -> {
}
}
}
}
//结束执行的时候调用 stopTimer() 就可以了
fun stopTimer() {
task?.stop();
}
一句话:
单任务的操作就是:把工具类放在widget文件夹下,把使用方法的代码都复制到要用的地方,开始就调用 setTimer(),任务执行在 TIMER -> {//定时执行的任务具体操作 },结束调用 stopTimer()。
多任务的操作稍后写。