android – 我可以一直使用WorkManager而不是coroutines吗?
作者:互联网
我想知道为什么当有一个很好的解决方案作为WorkManager时,我应该使用rx或协同程序.但对于几乎所有的教程,他们都使用协同程序,因此WorkManager可能有缺点吗?
解决方法:
两者的范围是不同的. WorkManager将安排延迟(以后的任何时间)或立即安排.
任务异步.
As documentation says
The WorkManager API makes it easy to specify deferrable, asynchronous
tasks and when they should run. These APIs let you create a task and
hand it off to WorkManager to run immediately or at an appropriate
time.
另一方面,协同程序被设计为仅立即和异步地计算给定任务.
也
在内部,协程和WorkManager的工作方式不同.工作管理器在很大程度上依赖于Android系统组件(如服务,报警管理器等)来安排工作,而协程安排工作线程上的工作,也是一种与WorkManager(API)不同的语言功能.因此可以肯定地说协同程序不会超出您的应用范围.另一方面,当您的应用程序处于非活动状态时,WorkManager甚至可以执行给定的任务.例如,后台服务.
此外,正如Marko所回答的那样,使用协同程序将导致更好的代码可读性和质量,因为它们的基本设计.
我还想包括ANKO,它是一个很棒的库,为Android的协同程序提供了一个有用的API.
标签:android,android-jetpack,android-workmanager,kotlinx-coroutines 来源: https://codeday.me/bug/20190827/1745741.html