作家
登录

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

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

  •     if (depth <= MAX_DEPTH) { 
  •       command.run(); 
  •     } else { 
  •       BoltsExecutors.background().execute(command) 
  •     } 
  •   } finally { 
  •     decrementDepth(); 
  •   } 
  • uiThread

    为 Android 专门设计,在主线程履行义务。

    1. public static final Executor UI_THREAD_EXECUTOR = AndroidExecutors.uiThread(); 
    1. private static class UIThreadExecutor implements Executor { 
    2.   @Override 
    3.   public void execute(Runnable command) { 
    4.     new Handler(Looper.getMainLooper()).post(command); 
    5.   } 

    核心类

    Task ,最核心的类,每个子义务都是一个 Task ,它们负责本身须要履行的义务。每个 Task 具有 3 种状况 Result 、 Error 和 Cancel ,分别代表成功、异常和撤消。

    Continuation ,是一个接口,它就像链接子义务每一环的锁扣,把一个个自力的义务链接在一路。

    经由过程 Task - Continuation - Task - Continuation ... 的情势构成完全的义务链,次序在各自线程履行。

    如不雅应用>

  • Task 
  •         .forResult(URL) 
  •         // 下载 
  •         .onSuccess(task -> downloadBitmap(task.getResult()), Task.BACKGROUND_EXECUTOR) 
  •         // 保存在本地 
  •         .onSuccess(task -> saveBitmapToFile(task.getResult()),Task.BACKGROUND_EXECUTOR) 
  •         // 更新UI 
  •         .onSuccess(task -> updateUI(task.getResult()), Task.UI_THREAD_EXECUTOR) 
  •         ... 
  • 创建 Task

    1. public static <TResult> Task<TResult> forResult(TResult value)  
    2. public static <TResult> Task<TResult> forError(Exception error)  
    3. public static <TResult> Task<TResult> cancelled() 

    应用 delay 办法,延时履行并创建 Task

    1. public static Task delay(long delay)  
    2. public static Task delay(long delay, CancellationToken cancellationToken) 

    应用 whenAny 办法,履行多个义务,当随便率性义务返回结不雅时,保存这个结不雅

    1. public static Task> whenAnyResult(Collection> tasks)  
    2. public static

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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