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 ExpandableListView实现下拉刷新和加载更多效果
这篇文章主要为大家详细介绍了Android ExpandableListView实现下拉刷新和加载更多效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-06-06Android应用开发中模拟按下HOME键的效果(实现代码)
Android应用开发中, 有一种场景,就是我们不希望用户直接按Back键退出Activity,而是希望应用隐藏到后台,类似于按Home键的效果2013-05-05Android弹窗ListPopupWindow的简单应用详解
这篇文章主要为大家详细介绍了Android弹窗ListPopupWindow的简单应用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-11-11
最新评论