JobScheduler和JobIntentService

tac*_*urv 5 android android-jobscheduler

我正在开发支持Android API 21及更高版本的应用.我的大多数后台任务都是使用API​​ 21中引入的JobScheduler设计的.

我最近遇到了API 26中引入的JobIntentService.该文档说"在Android O或更高版本上运行时,工作将通过JobScheduler.enqueue作为作业调度.当在旧版本的平台上运行时,它将使用Context. startService".

我想要理解的是,为什么android只使用API​​ 26而不是API 21使用JoScheduler.API 26及以上的JobScheduler是否与API 21中引入的不同.我是否需要更改任何代码为了提高效率/避免错误,将后台作业转换为使用JobIntentService而不是Job Scheduler.我想我不明白JobIntentService试图实现的目的.

Com*_*are 11

我不明白JobIntentService试图实现的目的

JobIntentService对于可能需要超过一分钟(但少于十分钟)并且您不希望使用前台服务的后台任务,可以替代IntentService/ WakefulBroadcastReceiver组合.

为什么android只使用API​​ 26而不是API 21使用JoScheduler

只有谷歌可以回答这个问题,这就是"为什么开发者X做决定Y?"这一形式的问题.Stack Overflow不好用.

请注意,API Level 26+的背景限制会导致"超过一分钟"的问题; 在以前的版本中,没有这样的限制.

API 21及更高版本的JobScheduler与API 21中引入的不同

有一些变化,包括一些能够JobIntentService工作的扩展.

我是否需要更改任何代码以提高效率/避免错误,将后台作业转换为使用JobIntentService而不是Job Scheduler

我不知道你为什么要从自己JobService转为JobIntentService.JobIntentService是替代IntentService,而不是JobService.