1、https://developer.android.com/topic/libraries/architecture/workmanager/
2、https://codelabs.developers.google.com/codelabs/android-workmanager/index.html?index=..%2F..index#3
创作不容易呀,花了一个周末才弄成转载请标明出处:https://blog.csdn.net/u013309870/article/details/86553531
WorkManager 是 Android Jetpack 中的新组件,用于负责管理后台任务。关于这个组件的介绍就不多说了,网上到处都是,这里分享一下在 WorkManager 中处理异步任务的方法。
我们知道,在 WorkManager 中,处理任务的方式是创建一个继承自 Worker 的任务类,实现 doWork() 方法,并在这个方法中实现我们自己的任务,然后返回 Result.success() 或 Result.failure() 来表示任务执行成功或者失败。在这里, doWork() 方法中的任务应该是同步的,这是很自然的,因为 doWork() 方法本身就是在子线程中执行,
WorkManager 是google提供的异步执行任务的管理框架,是 Android Jetpack 的一部分,会根据手机的API版本和应用程序的状态来选择适当的方式执行任务。
在后台执行任务的需求是非常常见的,Android也提供了多种解决方案,如JobScheduler、Loader、Service等,如果这些API没有被恰当使用,则可能会消耗大量电量。Android在解决应用程序耗电问题上做了各种尝试,从Doze到App Standby,通过各种方式限制和管理应用程序,以保证应用程序不会在后
WorkManager是针对一些即使App退出了也要由系统确保运行的任务设计的,可以延迟执行后台任务,提供了电量友好型API
WorkManager可以轻松让异步任务延迟执行以及何时运行他们。我们可以给WorkManager设置一个任务,然后选择相应运行的环境,并在符合条件时将其交给WorkManager运行,即使该应用被强制退出,此任务仍可保证运行。
WorkManager在应用运行时执行任务会开一个新线程执行,在应用未运行时会自动选择JobScheduler、Fireb
多在后台执行任务的需求是非常常见的,Android也提供了多种解决方案,如JobSchedule
r、Loader、Service等,如果这些AP|没有被恰当使用,则可能会消耗大量电量。Androi
d在解决应用程序耗电问题上做了各种尝试,从Doze到AppStandby,通过各种方式限
制和管理应用程序,以保证应用程序不会在后台消耗过多的设备电量。WorkManager为
应用程序中那些不需要及时完成的任务提供了一...
WorkerManager 适用于执行可以延迟(不需要精确时间)但是必须要稳定执行的的后台任务。适用于向后台同步应用数据,发送日志,应用检查更新等不需要及时完成的后台任务。在本文中这类型的后台任务,命名为延迟后台任务,方便理解。
在Android8.0以后Android系对后台的服务有了严格的限制,因此执行后台任务,需要通过系统调度的方式来执行,Google官方推荐使用JobScheduler 作业替换后台 Service。但是WorkerManager 是JetPack中的一个组成部分,并且完成能够
WorkManager能够让我们很容易调试一些将来执行的任务,即使应用退出或者设备重启(这就是厉害的地方)。我们知道JobScheduler也有相似的功能,但是官方建议使用WorkManager取代JobScheduler,因为WorkManager不仅融合了其它的一些API的功能,例如与Google Firebase相关的FirebaseJobDispatcher,与Google Clound Messing相关的GcmNetworkManager,而且WorkManager也会关注电量节省。
当然,并不