Android 定时执行工具类

类名为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()。

多任务的操作稍后写。

发布了38 篇原创文章 · 获赞 11 · 访问量 8771

猜你喜欢

转载自blog.csdn.net/u013750244/article/details/104668904