首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓WorkManager vs JobScheduler

安卓WorkManager vs JobScheduler
EN

Stack Overflow用户
提问于 2018-05-11 02:31:43
回答 6查看 35.5K关注 0票数 65

如果我们已经有了 JobScheduler和一些具有相同功能的漂亮的后端口(AndroidJobFirebaseJobDispatcher),为什么我们还需要新的Android JobScheduler呢?它有什么杀手级的功能吗?因为我没有看到任何让我想要迁移到另一个调度器的。

EN

回答 6

Stack Overflow用户

发布于 2018-11-11 16:00:26

WorkManager使用JobScheduler服务来调度作业。如果设备不支持JobScheduler,则使用Firebase JobDispatcher服务。如果Firebase JobDispatcher在设备上不可用,它将使用AlarmManagerBroadcastReceiver

因此,使用WorkManager,您不需要担心向后兼容性。除此之外,它还允许定义运行作业所需满足的约束,例如定义网络约束、电池电量、充电状态和存储容量。

它允许任务链接和将参数传递给作业。

http://www.zoftino.com/scheduling-tasks-with-workmanager-in-android

票数 23
EN

Stack Overflow用户

发布于 2018-05-11 07:49:34

WorkManager看起来像是谷歌对Evernote的Android-Job库的回应,但有一些改进。它使用JobScheduler,Firebase JobDispatcher和AlarmManager,就像Android-Job一样,这取决于设备的API级别。它们对标签的使用看起来非常相似,为作业/工作分配约束也足够相似。

我感到兴奋的两个特性是:能够链接工作和能够在有约束的工作中投机取巧。第一个将允许工作(工作)被分解,并且对我来说更加模块化。有了更多的模块化工作,每项工作可能会有更少的限制,从而提高了他们更早完成的机会(机会主义)。例如,大多数处理工作可以在满足具有网络约束的工作之前完成。

因此,如果您对当前的调度器实现感到满意,并且我提到的两个功能没有增加价值,那么我现在还看不到进行转换的巨大好处。但是如果你正在写一些新的东西,使用WorkManager可能是值得的。

票数 20
EN

Stack Overflow用户

发布于 2020-03-28 23:23:46

首先,WorkManager用于可以推迟并需要保证执行的工作。考虑到向后兼容性,JobScheduler只能在23+接口上工作。为了避免必须处理向后兼容性,WorkManager会为您做这件事:

工作管理器的功能

google play保证,约束感知的execution

  • Respect系统后台restriction

  • Quarreable,您可以检查状态,例如失败、成功、工作(例如etc

  • Chainable,-A依赖于工作)-B google

  • graph

  • Opportunistic,尝试在满足约束时立即执行,而实际上不需要作业调度程序进行干预,例如,如果您的进程正在运行且与running

  • Backward兼容,则唤醒应用程序或等待JobSheduler批处理您的工作,无论是否使用play
  • ->

WorkManager提供了回到API14级的兼容性。WorkManager根据设备API级选择适当的方式来调度后台任务。它可以使用JobScheduler (在API23和更高版本上)或AlarmManager和BroadcastReceiver的组合

引擎盖下的扩展架构

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50279364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档