如何使用WorkManager执行后台任务(下)

  • 时间:
  • 浏览:1
  • 来源:uu快3网站_uu快3充值_玩法

在程序运行运行运行开发中,但会 会多次把同一另2个链式任务上加到 WorkManager中,但希望可不里能 也能 一另2个链式任务在执行,这事先可不里能 使用唯一任务序列对链式任务指定避免规则。假设,做一另2个下载文件操作,对一另2个文件下载链接,大家 不都要重复下载,只都要上加一次,后面 再上加这个任务,就忽略掉,但会 大家 不希望重复多次下载同一另2个文件。就说当上加另2个同样名称为"download"操作任务时,对于唯一任务序列来说,可不里能 通过 ExistingWorkPolicy中的 REPLACEKEEPAPPEND,来指定上加的策略。

使用 beginUniqueWork()法律最好的办法可不里能 创建任务序列,但会 可不里能 指定唯一的一另2个名称(name)。但会 再 ExistingWorkPolicy指定任务的替换策略

有一另2个下载任务,在 Worker中获取传递过来的参数url,但会 执行下载,最后设置下载结果。

但会 ,通过 WorkRequest传递参数

同样地,在 Worker中可不里能 使用 Worker.setOutputData()设置一另2个 Data对象的返回值。要获取到这个返回值就通过 LiveData<WorkStatus>

http://clmirror.storage.googleapis.com/codelabs/android-workmanager/index.html?index=..%2F..%2Findex#0

https://developer.android.com/reference/androidx/work/ExistingWorkPolicy

任务执行可不里能 传递参数以及获取到任务执行的结果。使用 WorkRequst.Builder.setInputData()法律最好的办法传递一另2个 Data对象,它是key-value形式的对象,使用 Data.Builder来创建。在 Worker类中可不里能 使用 Worker.getInputData()获取到参数。

在上一文中但会 了解到 WorkManager的基本用法事先,今天来看看它的就说高级用法:

举个栗子:

WorkManager在执行多个工作任务的事先,可不里能 指定执行顺序。假设一另2个程序运行运行运行涵盖2个 OneTimeWorkRequest对象: workAworkBworkC。这2个任务都要按照顺序执行,如此可不里能 使用 WorkManager.beginWith()法律最好的办法加入 workA,这事先会返回一另2个 WorkContinuation对象,它定义了工作任务的执行序列。但会 通过它再调用 WorkContinuation.then()workBworkC加入到执行队列中,最后执行 WorkManager.enqueue()法律最好的办法。

还可不里能 通过 WorkContinuation.combine()法律最好的办法创建更加冗杂的链接任务调用序列。它可不里能 将另2个 WorkContinuation对象合并,假设要调用如下的任务序列:

https://developer.android.com/topic/libraries/architecture/workmanager/advanced

WorkManager.beginWith()法律最好的办法可不里能 传递多个 Worker对象,表示可不里能 并行执行的任务组,但会 再调用 then()法律最好的办法。当这并行任务组都执行完事先才会执行接下来 then中的工作任务。

都要注意的是, WorkManager无法保证另2个子链的执行顺序,有但会 chain1chain2快,都有 但会 是 chain1chain2慢。

这个链式执行顺序是:子链 A->B 与子链 C->D 并行执行的, workA执行后再执行 workB,以及 workC执行后执行 workD ;但会 在等待 workB以及 workD都执行完,最后执行 workE

WorkManager会按照指定的顺序来执行 workAworkBworkC。但会 其涵盖一另2个工作任务执行的事先返回 Worker.Result.FAILURE,如此整个执行序列就会停止。

最后,通过 WorkStatus获取返回值

猜你喜欢

三星w2018组装机多少钱!

可选中两个 或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。提示:请各位消费者在收到这种于中奖或极低价格购机信息时谨慎对待,补救上当受骗。使用百度知

2020-03-22

王者荣耀拒绝了一次人脸识别,时候不弹出,每天只能玩一个小时,已成年,卸载重下已经试过了

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。追问不怎么推荐不采纳的全是蔡徐坤。你对你这人 回答的评价是?追答收起更多回答(6)你对你这人 回答的

2020-03-22

网宿科技孙靖泽:CDN规模门槛为5T,整合潮年底就会出现

业内人士认为,CDN行业是另另四个靠规模取胜的行业,原因分析分析手里的服务器和强度很多,能应对的峰值就越高,越来越 也就更有能力做更大的客户。这几年随着市场需求的不断扩大,以

2020-03-22

OPPO哪一款手机比较好

换一换下载百度知道APP,抢鲜体验展开完正扫描二维码下载其他人刚买了oppor15,用了有另一有一个月了,感觉手感比较好,因此 运行传输数率还能要能,外观也比较好看,拿起来

2020-03-21

阿里云数据库资深专家林伟:大规模计算平台研究与实战

【云栖大会】高可用、高并发、高性能架构实战经验昨夜难忘?今晚20点,容器、后面 件、负载均衡等实战交流继续!进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

2020-03-21