WorkManager 系列课程 | MAD Skills

算法拾光者
• 阅读 1643

我们在不久前刚刚结束了一个 关于 WorkManager 的 MAD Skills 系列课程。在系列的最开始,我们为新接触的开发者们介绍了 WorkManager,随后,我们深入探讨了该库的高级用途,包括如何测试和调试您的 WorkManager 代码。在最后一集中,我们介绍了如何将 GCMNetworkManager 和 FirebaseJobDispatcher 中的旧代码迁移到 WorkManager。

WorkManager 系列课程 | MAD Skills

下面我们来对其中的内容进行简单回顾。

第 1 集: WorkManager: 基础知识

在第 1 集中,我们通过 WorkManager Codelab 探索了 WorkManager 的基础知识。首先,我们了解了如何定义想要完成的工作,以及如何制定工作计划。接着,我们实现了一些不同类型的工作,包括一次性工作和周期性工作。本集最后介绍了 应用待机存储分区 (App Standby Buckets),以帮助您更好地了解 WorkManager 计划工作的方式。

WorkManager 系列课程 | MAD Skills)

如果您是首次使用 WorkManager,我们建议您阅读下列文章:

第 2 集: WorkManager: 后台运行任务

本集由 Ben 为您深入介绍 WorkManager 如何处理多线程。在处理线程时,您可以选择使用 Executor、coroutine 或 RxJava,而 Ben 使用 WorkManager 为您演示了每一种方法。在本集的最后,Ben 还演示了如何在工作完成后返回结果,以使界面随之更新。

WorkManager 系列课程 | MAD Skills

如果您想将 WorkManager 和 coroutine 一起使用,我们建议您阅读 Florina 的这篇文章: WorkManager - Kotlin API

第 3 集: WorkManager: 高级配置和测试

在第 3 集中,我们介绍了如何自定义 WorkManager 的初始化,以及如何支持跨多个进程的应用。我们收到了开发者关于测试和调试的问题,因此 Ben 还深入讲解了如何测试 Worker,以及一些实用调试方法。

WorkManager 系列课程 | MAD Skills

第 4 集: 从 GCM NetworkManager 和 FirebaseJobDispatcher 迁移到 WorkManager

在第 4 集中,我们重点介绍了如何从旧的作业调度库 (GCMNetworkManager 和 FirebaseJobDispatcher) 迁移到使用 WorkManager。一旦您的应用开始以 API 级别 30 及更高版本为目标平台,则 GCM NetworkManager 和 FirebaseJobDispatcher 在 Android 6.0 及以上版本的设备将会不工作。如果您的应用仍然在使用这两个库,是时候将其更新,并且改用 WorkManager 了!

WorkManager 系列课程 | MAD Skills

第 5 集: Hugo 谈 WorkManager

Android GDE Hugo Visser 谈论了他为何选择在自己最近开发的一款健康应用中使用 WorkManager,以及该库为他的开发工作带来了哪些帮助。

WorkManager 系列课程 | MAD Skills

第 6 集: 现场问答

在本系列课程的最后是一个问答环节,我们回答了大家提出的 WorkManager 相关问题。观看视频了解所有的问题答案,包括 WorkManager 的未来计划、如何处理重复工作、如何重试失败工作,等等。

WorkManager 系列课程 | MAD Skills

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
浩浩 浩浩
5年前
WorkManager 在 Kotlin 中的实践
WorkManager是一个AndroidJetpack扩展库,它可以让您轻松规划那些可延后、异步但又需要可靠运行的任务。对于绝大部分后台执行任务来说,使用WorkManager是目前Android平台上的最佳实践。WorkManagerhttps://developer.android.google.cn/topic/libra
科工人 科工人
4年前
go语言开发入门:GO 开发者对 GO 初学者的建议
以促进India的go编程作为GopherConIndia承诺的一部分。我们采访了 40位Gophers(一个Gopher代表一个GO项目或是任何地方的GO程序员),得到了他们关于GO的意见。如果你正好刚刚开始go编程,他们对于我们一些问题的答案可能会对你有非常有用。看看这些。应该做:通读 theGostandard
Stella981 Stella981
4年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Easter79 Easter79
4年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Easter79 Easter79
4年前
TSINGSEE青犀视频Easy系列视频平台是如何输出HLS流的?HLS协议详解
关于Easy系列的视频平台都可以输出几种不同的视频流,其中包括FLV、HLS。本文我们来讲一下Easy系列视频平台输出的HLS协议视频流。!NVR9.png(https://imgconvert.csdnimg.cn/aHR0cDovLzEyMS40MC4yMDAuMTE5OjgxNjAvdXBsb2Fkcy8yMDIwLzA4LzAwMTgyZGM
Wesley13 Wesley13
4年前
Java入门系列
这篇文章为你搞懂2个问题1.什么是数组,数组是干嘛用的?2.数组如何使用?考试结束后,老师给二狗安排了一项任务,统计班里40名同学的平均分。按照我们之前的做法,我们可以定义40个变量然后再相加除以40求出平均分,但是这样太繁琐了,有没有更好的办法呢?那就是使用数组。数组数组其实也是一个变量,顾名思义存储了一组相同类型的
Wesley13 Wesley13
4年前
2019 年 阿里巴巴云原生最受欢迎文章排行榜
在刚刚过去的2019年里,阿里巴巴云原生公众号共发布了270篇文章,累计阅读40多万,文章内容涵盖阿里云原生实践、云原生生态新闻到K8s入门等。这个春节假期,我们整理了三个最受欢迎的文章榜单,包含系列文章、爆款文章和事件文章三类。<aname"2MH8H"</a最受欢迎系列文章Top2