对一些公共的操作,可以零丁分别成新的义务,当须要做类似操作时,即可复竽暌姑这部份功能,如可以将 下载图片并更新 UI 、 保存状况并弹出提示 两块功能分别出来,作为公共的义务。
- // 下载图片->更新UI
- public Continuation<String, Task<String>> downloadImageAndUpdateUI() {
- return task ->
- Task.call(() -> downloadBitmap(task.getResult()), Task.BACKGROUND_EXECUTOR)
- .continueWith(taskWithBitmap -> updateUI(taskWithBitmap.getResult()), Task.UI_THREAD_EXECUTOR);
- }
- // 保存状况->提示信息
- public Continuation<String, Task<Boolean>> saveStateAndToast() {
- return task ->
- Task.call(() -> saveUIState(task.getResult()), Task.BACKGROUND_EXECUTOR)
- .continueWith(taskWithPath -> toastMsg("save to " + taskWithPath.getResult()));
- }
应用分别的义务

- Task
- .forResult(URL)
- .continueWithTask(downloadImageAndUpdateUI())
- .continueWithTask(saveStateAndToast())
- ...
异常的处理
总结
在 Task 中有一个 continuations 是当前义务后面追加的义务列表,当当前义务成功、异常或者撤消时,会去履行列表中的后续义务。
平日情况下,我们应用链式调用构建义务链,结不雅就是一条没有分支的义务链。
添加义务时:每次添加一个 Continuation ,就会生成一个 Task ,加到上行义务的 continuations 列表中,等待履行,同时返回当前的 Task ,以便后面的义务可以链接到当前义务后面。
根据 Task 的 3 种状况,创建简单的 Task ,会复竽暌姑已有的义务对象
履行义务时:当前义务履行完之后,结不雅可能有 3 种,都邑被保存到当前的 Task 中,然后检查 continuations 列表中的后续义务,而当前的 Task 就会作为参数,传递到后续链接的义务中,来让后面的义务得知上行义务的结不雅。
【编辑推荐】
- 几回再三被曝安然马脚的Android在10月经历了哪些威逼?
- Facebook为Android法度榜样员增长开源新特点,大年夜幅度修改Buck!
- Android,一个鄙陋的获取妹子手机相册里所有照片的办法...
- 为Android安装Linux终端仿真与情况APP
- 这种技巧可以或许替代 Android 原生开辟?
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践美团外卖此前也推出了“O2O及时配送智能调剂体系”。据其颁布的数据显示,上线该体系后,配送员单均配送时长>>>详细阅读
本文标题:「Android」Bolts-更简单的完成线程调度和任务管理
地址:http://www.17bianji.com/lsqh/39148.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示