【问题标题】:JobScheduler and JobIntentServiceJobScheduler 和 JobIntentService
【发布时间】:2018-01-16 02:25:17
【问题描述】:

我正在开发一个支持 Android API 版本 21 及更高版本的应用程序。我的大部分后台任务都是使用 API 21 中引入的 JobScheduler 设计的。

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

我想了解的是,为什么 android 仅使用 API 26 中的 JoScheduler 而不是 API 21 中的 JoScheduler。API 26 及更高版本的 JobScheduler 与 API 21 中引入的 JobScheduler 是否有区别。我需要更改任何代码以提高效率/避免错误,将我的后台作业转换为使用 JobIntentService 而不是 Job Schedulers。我想我不明白 JobIntentService 试图实现的意图。

【问题讨论】:

    标签: android android-jobscheduler


    【解决方案1】:

    我不明白 JobIntentService 试图达到的目的

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

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

    只有 Google 可以回答这个问题,这就是为什么“开发者 X 为何做出 Y 决策?”形式的问题。不适合 Stack Overflow。

    请注意,“超过一分钟”的问题是由 API 级别 26+ 的背景限制引起的;在以前的版本中,没有这样的限制。

    API 26 及更高版本的 JobScheduler 与 API 21 中引入的 JobScheduler 是否有区别

    进行了一些更改,包括一些使 JobIntentService 能够工作的扩展。

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

    我不知道你为什么会从自己的JobService 切换到JobIntentServiceJobIntentServiceIntentService 的替代品,而不是 JobService

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-05
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多