Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jasperWang/TaskManager

Repository files navigation

Task manager is an Android task management tool. It is capable of handling complex task work flow. It's low-coupling, flexible & stable. It supports relation-based tasks. All tasks will be executed in a well-managed order. It can submit tasks with complex relations such as "Or Dependency" or "And Dependency". Meanwhile, parallel tasks and serial tasks are also supported.

Supported Features

 TM.postAsync(Runnable); // run on background thread
 TM.postAsyncDelay(Runnable);
 TM.postUI(Runnable); // run on UI thread
 TM.postUIDelay(Runnable, int delay);
 TM.postSerial(Runnable , String groupName);//tasks with same group name , runs in FIFO order.
 TM.cancelTaskByToken(Object);// cancel tasks with same token.

1. Task dispatcher:

  • Dispatch task to UI thread or background thread
  • Dispatch task to run on background thread in FIFO order (behaves like background thread Handler ).
  • Submit a group of tasks, to run in parallell. (ParallellTask)
  • To run a task periodically. (TickTask)
  • Run task while idle. (Task.enableIdleRun)

img

2. Event & Data Dispatcher:

img

3. Advantages:

a) Change serial tasks into parallel tasks by adding task dependencies, so that we can run several tasks in the same time.

img

b) Task execute guarantee: Call "TM.needTaskSync" before your business running. In order to make sure your tasks prerequisites are proper loaded.

img

c) Task recursive dependency testing: In debug mode , task recursive test will be executed in order to avoid some wrong relationship been set to tasks.

Getting Started

add dependencies in your "build.gradle" file

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

Developer Guide

TaskAnalyze

  • TaskAnalyze: Please refer to Task Analyze(任务分析) function in Lens.
  • TaskRecode: See iqiyi/Lens DataDump Function to check TM task status; You can find running tasks ,finished tasks & task bloking time on DataDump panel.
 LensUtil.setDumper(MyDumpFactory.class);
@Override
 public ILogDumper create() {
 return AnnotationLogDumper.create(this)
 // Dump.class:注解类;
 //LensApp.getInstance(): 查询注解的单例对象
 //StaticDump.class:查询带注静态方法的类
 .add(Dump.class, LensApp.getInstance(), StaticDump.class)
 //"TM" : 别名
 //TMDump.class:注解类;
 // TaskManager.getInstance():查询注解的单例对象
 .add("TM",TMDump.class, TaskManager.getInstance(), TaskRecorder.class);
 }

License

TaskManager is Apache v2.0 Licensed.

About

一种支持依赖关系、任务兜底策略的任务调度管理工具。API灵活易用,稳定可靠。轻松提交主线程任务、异步任务。支持周期性任务,顺序执行任务,并行任务等。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Java 100.0%

AltStyle によって変換されたページ (->オリジナル) /