JobScheduler是Android5.0 开始引入了一个新系统服务。它将后台任务调度直接交给系统服务(JobSchedulerSevice)管理,并且可以设置许多约束条件,如周期调度,延迟调度,网络连接,电源插入,还有AndroidL引入的空闲模式,在条件符合的情况下,系统服务BindService的方式把应用内Manifest中配置的JobService启动起来,并通过进程间通信Binder方式调用JobService的onStartJob、onStopJob等方法来进行Job的管理。即便在执行任务之前应用程序进程被杀,也不会导致任务中断,Jobservice不会因应用退出而退出,但确实是运行在该应用进程中。
JobInfo.Builder配置介绍
构造函数:JobInfo.Builder(int jobId, ComponentName jobService)
参数说明int jobId
按照官方文档说jobId该标识符在相同的uid的所有客户端中必须是唯一的(即在该设备上必须是唯一的)。为了保证在应用升级后也是稳定的,因此建议不要基于资源id进行设置 。
ComponentName jobService
用来处理该任务的应用内服务service的ComponentName,系统服务会依此启动该服务
重要方法配置参数//设置开机启动
builder.setPersisted(true); //设置失败后重试间隔时间和策略
//BACKOFF_POLICY_LINEAR: initial_backoff_millis * num_failures 延迟时间等于乘以次数
//BACKOFF_POLICY_EXPONENTIAL:initial_backoff_millis * 2 ^