在我的 Android 应用程序中,我有多个 Intent 服务一个接一个地运行,第一个 Intent 服务由广播触发。我遇到了Work Manager几天前,真的很喜欢 Worker 和 WorkManager 类的简单性。与常规 Intent 服务相比,Work Manager 的优缺点是什么?考虑到我将来可能需要编写更多的 Intent 服务,我现在应该切换到工作经理吗?还有哪个选项可以帮助我轻松测试代码?
最佳答案
WorkManager 具有以下功能:
- 提供可以在进程死亡后存活的任务
- 它可以唤醒应用程序和应用程序的进程来完成工作,从而保证工作将被执行。
- 允许观察工作状态和创建复杂工作链的能力
- 允许工作链,允许将大块工作分离成小工作,并根据不同的约束执行它们
- 优雅地管理打盹模式或操作系统施加的其他限制。
以下情况会有所帮助:
- 执行长时间运行的后台任务,例如上传媒体
- 在数据库中解析和存储数据。
- 需要在流程死亡中幸存下来的关键任务
Should i switch to work manager now considering the fact that i may have to write more intent services in the future?
在大多数情况下,它应该是 IntentService 的替代品,但在使用之前您必须仔细考虑。 IntentService 一开始可能不是最好的选择。
WorkManager 无法回答所有后台任务。例如。您不应该使用它来处理付款,因为它不需要在流程死亡中幸存下来,并且这些任务需要立即执行。考虑使用前台服务。使用它们来解析数据和 View 内容也不是一个好主意。
在使用它之前,您确实需要权衡是否需要它的功能。由于 Google 几乎要重新改造我们的编码方式,WorkManager 将成为我们后台处理问题的解决方案。当然,这将是最重要的选择,因为它抽象了对操作系统施加的几个约束的处理。您应该考虑将其用于 future 的实现。
Also which option would help me test the code easily?
Google 还提供了测试库,方便 WorkManager 的测试。它仍在开发中,但在发布之前应该会变得更强大。
关于java - Android 工作管理器与服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343578/