Skip to content

IdleTask

Carlyle-Lee edited this page Jun 7, 2020 · 4 revisions

IdleTask: 闲时任务调度。默认给任务开启IdleRun模式。

⚡ need more test. Modified in 1.3.6 to support new feature.

Task will be running when idle. If IdleTask is declared to run on UI thread, this task will be running when UI thread is idle. If this task is to run on background threads, this task will be running when TM thread pool is not so busy.
若把任务提交到主线程,任务将在主线程闲时执行。若把任务提交到子线程,任务将在TM线程池相对空闲的时候执行。 大多数的idle task 场景需求,只需要在task.enableIdleRun 即可。当需要在主线程idle时一次执行多个idle任务的时候,则必须使用IdleTask来实现。 可通过TaskManagerConfig.setIdleTaskOffset(int) 设置一次主线程idle时,可用于执行idle task 的最大时间间隔。(详细说明见TaskManagerConfig.setIdleTaskOffset)

// post task to UI thread
new IdleTask(){
            @Override
            public void doTask() {

            }
        }.postUI();


// post task to non-UI thread
new IdleTask(){
            @Override
            public void doTask() {

            }
        }.postAsync();
Clone this wiki locally