时间:2021-05-21
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'以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Eclipse查看开发包jar里源代码的方法前言:最近我打算学习一下谷歌的类库Guava,下载了Guava-r09.jar包及其源码,为了可以方面的看其源码,我
AndroidMeasureSpec的理解和源码的解析MeasureSpec的创建规则:实例详解:packagecc.ww;importandroid.view
DOMDocumentphp提供了非常好用的解析html和xml文档的扩展库DOM,使用这个库可以非常高效的进行html和xml文档的解析,它的原理就是通过寻找
一、核心文件generator.xml指定数据库jar包位置、数据库连接信息、生成包的位置、表名等关键信息。该文件放在任意位置。二、table标签解析①属性sc
本文实例讲述了Laravel框架源码解析之模型Model原理与用法。分享给大家供大家参考,具体如下:前言提前预祝猿人们国庆快乐,吃好、喝好、玩好,我会在电视上看