Task manager 是一个支持关系依赖的Android任务管理SDK。它具备处理复杂任务依赖关系的能力,可用于加速一些耗时任务执行过程。它支持 "与依赖",“或依赖", 支持”并行任务“、”串行任务“、"事件任务"等等,API 非常灵活易用。除此之外,它还实现了任务兜底机制,为任务异步并发后的稳定性提供了技术支撑。
还在到处new Handler 来提交任务?使用TM吧。
TM.postAsync(Runnable); // 提交任务到子线程
TM.postAsyncDelay(Runnable);
TM.postUI(Runnable); // 提交任务到主线程执行.
TM.postUIDelay(Runnable, int delay);
TM.postSerial(Runnable , String groupName);//相同组名任务,按顺序执行。
TM.cancelTaskByToken(Object);// 取消相同token 的任务。
- 将任务提交到UI线程或子线程执行。
- 提交任务按照FIFO 顺序执行。(参考 executeSerial)
- 将多个子任务组合成并发任务,并发执行。(ParallelTask)
- 周期性的执行任务。(TickTask)
- 闲时任务调度 (IdleTask , Task.enableIdleRun)
a) 通过为任务设置依赖关系,将串行执行的任务,尽量可能的异步并发执行。充分利用CPU的运算能力;
b) 任务执行保证:通过在具体业务之前添加"TM.needTaskSync"调用,可确保异步逻辑在具体业务需要时,已执行完成。
c) 任务循环依赖检测:在debug 模式下,内部实现了循环依赖任务检测能力。如果发现循环依赖的情况,程序将给出崩溃提示。
add dependencies in your "build.gradle" file
dependencies {
implementation 'com.iqiyi.taskmanager:taskmanager:1.3.7'
}
Lens 可支持TM分析功能。
- 任务分析功能: 见Lens 任务分析功能。支持展示任务运行时间,任务名等等信息。
- 任务记录:对接Lens data dump 功能,可在data dump 面板中查看任务状态,包含进行中的任务,等待中的任务,已完成的任务以及任务阻塞时间等等。
TaskManager is Apache v2.0 Licensed.