Skip to content

Latest commit

 

History

History
71 lines (43 loc) · 2.56 KB

README-CN.md

File metadata and controls

71 lines (43 loc) · 2.56 KB

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 的任务。

1. 任务分发:

  • 将任务提交到UI线程或子线程执行。
  • 提交任务按照FIFO 顺序执行。(参考 executeSerial)
  • 将多个子任务组合成并发任务,并发执行。(ParallelTask)
  • 周期性的执行任务。(TickTask)
  • 闲时任务调度 (IdleTask , Task.enableIdleRun)

img

2. 事件与数据分发:

img

3. 优势:

a) 通过为任务设置依赖关系,将串行执行的任务,尽量可能的异步并发执行。充分利用CPU的运算能力;

img

b) 任务执行保证:通过在具体业务之前添加"TM.needTaskSync"调用,可确保异步逻辑在具体业务需要时,已执行完成。

img

c) 任务循环依赖检测:在debug 模式下,内部实现了循环依赖任务检测能力。如果发现循环依赖的情况,程序将给出崩溃提示。

Getting Started

add dependencies in your "build.gradle" file

dependencies {
    implementation 'com.iqiyi.taskmanager:taskmanager:1.3.7'
}

任务分析

Lens 可支持TM分析功能。

  • 任务分析功能: 见Lens 任务分析功能。支持展示任务运行时间,任务名等等信息。
  • 任务记录:对接Lens data dump 功能,可在data dump 面板中查看任务状态,包含进行中的任务,等待中的任务,已完成的任务以及任务阻塞时间等等。

开发指南

License

TaskManager is Apache v2.0 Licensed.