上文,从Job任务的创建,到如何与JSC(JobServiceCotext)关联,到具体任务的绑定、执行进行了源码探索,相信大家到现在为止,对于JobScheduler的庐山真面目,脑海中已经有了些许自己的轮廓。但是,我们也知道,目前为止,仅仅是任务的创建、任务的执行原理我们了解、学习到了,但是任务何时执行的?约束条件如何监控job的?这些还未讲到。

本文,我们一起继续探索源码,解析其中剩余的奥秘。

1.JobScheduler

经过几节探索,大家知道了JobService、JobServiceContext、JobSchedulerService的各自作用,但是不知道您是否发现了一个疑问点?任务(JobService、JobInfo)有了、任务的执行调用逻辑也有了(通过C-S的绑定)、约束条件(JobInfo)也有了,但是任务的约束条件如何达到、如何监控的?这块我们并未涉及。
接下来一节,我们开始就任务的具体调用相关源码进行探索。

JobScheduler jobScheduler = (JobScheduler)