根据系统闹钟的定时任务,按任务的执行时间顺序依次执行,可动态添加及取消任务。
不支持任务时间片重叠的场景
基于开源项目修改,感谢作者:https://github.com/BolexLiu/TimeTask
Step 1. 添加JitPack仓库到根目录build.gradle文件
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.Doonkey:TimeTask:${version}'
}
其中的ReserveTask继承Task
public class ReserveTask extends Task {
public ReserveTask(String taskId, long starTime, long endTime) {
super(taskId, starTime, endTime);
}
}
taskHandler = new TaskManager<ReserveTask>().getTaskHandler(this);
taskHandler.addCallBack(timeHandler);//添加任务回调
TaskCallBack<ReserveTask> timeHandler = new TaskCallBack<ReserveTask>() {
@Override
public void taskExecute(ReserveTask task) {
Log.e("TAG", "taskExecute" + task.toString());
}
@Override
public void taskOverdue(ReserveTask task) {
Log.e("TAG", "taskOverdue" + task.toString());
}
@Override
public void taskFuture(ReserveTask task) {
Log.e("TAG", "taskFuture" + task.toString());
}
};
taskHandler.addTask(ReserveTask... task);//把资源放进去处理
taskHandler.cancelTask(String taskId);
taskHandler.release();