Android jar库源码Bolts原理解析

 更新时间:2022年06月30日 14:25:33   作者:Supper_litt  
这篇文章主要介绍了Android jar库源码Bolts原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Bolts:
  作用:
    用于链式执行跨线程代码,且传递数据栗子:

Task.call(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
return true;
}
}, Task.UI_THREAD_EXECUTOR);

Task.callInBackground(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
return false;
}
});

Task.callInBackground(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
return true;
}
}).onSuccess(new Continuation<Boolean, Object>() {
@Override
public Object then(Task<Boolean> task) throws Exception {
if (task.getResult()) {
return null;
} else {
return new Object();
}
}
}, Task.BACKGROUND_EXECUTOR).continueWith(new Continuation<Object, Object>() {
@Override
public Object then(Task<Object> task) throws Exception {
if (task.getResult() == null) {
Toast.makeText(getBaseContext(), "null", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getBaseContext(), "not null", Toast.LENGTH_SHORT).show();
}

return null;
}
}, Task.UI_THREAD_EXECUTOR);

  源码解读:
  在内部通过维护多中 ExecutorService 对象,并且通过串联的方式进行调用。

  并且通过维护内部变量在,在指定流程处,就是特定的,值,值通过Task的对象getResult拿到。

  UIThread

/**
* An {@link java.util.concurrent.Executor} that runs tasks on the UI thread.
*/
private static class UIThreadExecutor implements Executor {
@Override
public void execute(Runnable command) {
new Handler(Looper.getMainLooper()).post(command);
}
}

  BackgroundThread

private BoltsExecutors() {
background = !isAndroidRuntime()
? java.util.concurrent.Executors.newCachedThreadPool()
: AndroidExecutors.newCachedThreadPool();
scheduled = Executors.newSingleThreadScheduledExecutor();
immediate = new ImmediateExecutor();
}

  源码:https://github.com/BoltsFramework/Bolts-Android
  引入:
implementation 'com.parse.bolts:bolts-android:1.2.0'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android自定义View实现波浪动画

    Android自定义View实现波浪动画

    这篇文章主要为大家详细介绍了Android自定义View实现波浪动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Android ExpandableListView实现下拉刷新和加载更多效果

    Android ExpandableListView实现下拉刷新和加载更多效果

    这篇文章主要为大家详细介绍了Android ExpandableListView实现下拉刷新和加载更多效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Android Scroller大揭秘

    Android Scroller大揭秘

    本篇文章主要介绍了Android Scroller的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Android后台线程和UI线程通讯实例

    Android后台线程和UI线程通讯实例

    这篇文章主要介绍了Android后台线程和UI线程通讯实例,每一步的要点和步骤都有提及,并配有代码例子,需要的朋友可以参考下
    2014-06-06
  • Android应用开发中模拟按下HOME键的效果(实现代码)

    Android应用开发中模拟按下HOME键的效果(实现代码)

    Android应用开发中, 有一种场景,就是我们不希望用户直接按Back键退出Activity,而是希望应用隐藏到后台,类似于按Home键的效果
    2013-05-05
  • 详解Android版本适配:9.0 Pie

    详解Android版本适配:9.0 Pie

    这篇文章主要介绍了Android版本适配9.0 Pie,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Android设计模式系列之单例模式

    Android设计模式系列之单例模式

    单例模式,可以说是GOF的23种设计模式中最简单的一个。接下来通过本文给大家实例讲解android设计模式系列之单例模式的相关知识,感兴趣的朋友一起看看吧
    2016-09-09
  • Android进程间大数据通信LocalSocket详解

    Android进程间大数据通信LocalSocket详解

    这篇文章主要为大家介绍了Android进程间大数据通信LocalSocket详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android自定义View绘图实现渐隐动画

    Android自定义View绘图实现渐隐动画

    这篇文章主要为大家详细介绍了Android自定义View绘图实现渐隐动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android弹窗ListPopupWindow的简单应用详解

    Android弹窗ListPopupWindow的简单应用详解

    这篇文章主要为大家详细介绍了Android弹窗ListPopupWindow的简单应用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论