在我的Android应用程序中,我有多个意图服务,这些服务依次运行,第一个意图服务是由广播触发的。我在几天前了解到Work Manager,真的很喜欢Worker和WorkManager类的简单性。相比常规的意图服务,Work Manager有哪些优缺点?考虑到我将来可能会编写更多的意图服务,是否应该现在就切换到工作管理器?还有哪种选项能帮助我轻松地测试代码?
WorkManager提供以下功能:
以下是使用它有帮助的情况:
考虑到未来可能需要编写更多的IntentService,我现在应该转换为WorkManager吗?
在大多数情况下,它应该取代IntentService,但您必须仔细考虑使用它之前。可能一开始就选择IntentService并不是最好的选择。
WorkManager并不是处理所有后台任务的答案。例如,您不应将其用于处理付款,因为它不需要在进程死亡时保持存活,并且这些任务需要立即执行。可以考虑使用前台服务。此外,也不建议将其用于解析数据和视图内容。
在使用之前,确实需要权衡是否需要其功能。由于Google正在重构我们编写代码的方式,WorkManager将成为解决我们后台处理问题的最佳选择。肯定会成为最重要的选项,因为它抽象了操作系统施加的多种限制的处理。您应该考虑在未来的实现中使用它。
还有哪个选项能帮助我轻松测试代码?
Google还提供了测试库,可轻松进行WorkManager的测试。目前仍在开发中,但应在发布前变得更加强大。
doWork()
将在后台线程执行。 - SagarIntentService
的理由吗? - IgorGanapolsky