栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Andorid jar库源码Bolts原理解析

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Andorid jar库源码Bolts原理解析

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

  栗子:
复制代码
Task.call(new Callable() {
@Override
public Boolean call() throws Exception {
return true;
}
}, Task.UI_THREAD_EXECUTOR);

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

Task.callInBackground(new Callable() {
@Override
public Boolean call() throws Exception {
return true;
}
}).onSuccess(new Continuation() {
@Override
public Object then(Task task) throws Exception {
if (task.getResult()) {
return null;
} else {
return new Object();
}
}
}, Task.BACKGROUND_EXECUTOR).continueWith(new Continuation() {
@Override
public Object then(Task 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

复制代码

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'以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号