作家
登录

「Android」Bolts-更简单的完成线程调度和任务管理

作者: 来源: 2017-11-22 14:47:18 阅读 我要评论

对一些公共的操作,可以零丁分别成新的义务,当须要做类似操作时,即可复竽暌姑这部份功能,如可以将 下载图片并更新 UI 、 保存状况并弹出提示 两块功能分别出来,作为公共的义务。

  1. // 下载图片->更新UI 
  2. public Continuation<String, Task<String>> downloadImageAndUpdateUI() { 
  3.     return task -> 
  4.             Task.call(() -> downloadBitmap(task.getResult()), Task.BACKGROUND_EXECUTOR) 
  5.                     .continueWith(taskWithBitmap -> updateUI(taskWithBitmap.getResult()), Task.UI_THREAD_EXECUTOR); 
  6.  
  7. // 保存状况->提示信息 
  8. public Continuation<String, Task<Boolean>> saveStateAndToast() { 
  9.     return task -> 
  10.             Task.call(() -> saveUIState(task.getResult()), Task.BACKGROUND_EXECUTOR) 
  11.                     .continueWith(taskWithPath -> toastMsg("save to " + taskWithPath.getResult())); 

应用分别的义务

「Android」Bolts-更简单的完成线程调剂和义务治理

  1. Task 
  2.         .forResult(URL) 
  3.         .continueWithTask(downloadImageAndUpdateUI()) 
  4.         .continueWithTask(saveStateAndToast()) 
  5.         ... 

异常的处理

总结

在 Task 中有一个 continuations 是当前义务后面追加的义务列表,当当前义务成功、异常或者撤消时,会去履行列表中的后续义务。

平日情况下,我们应用链式调用构建义务链,结不雅就是一条没有分支的义务链。

添加义务时:每次添加一个 Continuation ,就会生成一个 Task ,加到上行义务的 continuations 列表中,等待履行,同时返回当前的 Task ,以便后面的义务可以链接到当前义务后面。

根据 Task 的 3 种状况,创建简单的 Task ,会复竽暌姑已有的义务对象

履行义务时:当前义务履行完之后,结不雅可能有 3 种,都邑被保存到当前的 Task 中,然后检查 continuations 列表中的后续义务,而当前的 Task 就会作为参数,传递到后续链接的义务中,来让后面的义务得知上行义务的结不雅。

【编辑推荐】

  1. 几回再三被曝安然马脚的Android在10月经历了哪些威逼?
  2. Facebook为Android法度榜样员增长开源新特点,大年夜幅度修改Buck!
  3. Android,一个鄙陋的获取妹子手机相册里所有照片的办法...
  4. 为Android安装Linux终端仿真与情况APP
  5. 这种技巧可以或许替代 Android 原生开辟?
【义务编辑:未丽燕 TEL:(010)68476606】

  推荐阅读

  外卖平台盯上“无人配送” 规模化落地待解

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践美团外卖此前也推出了“O2O及时配送智能调剂体系”。据其颁布的数据显示,上线该体系后,配送员单均配送时长>>>详细阅读


本文标题:「Android」Bolts-更简单的完成线程调度和任务管理

地址:http://www.17bianji.com/lsqh/39148.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)