android service执行定时任务,Android通过JobScheduler特殊场景下周期性执行后台任务...

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 ^ 

你可能感兴趣的:(android,service执行定时任务)