RXAndroid Single的使用
2015-12-30 21:50
489 查看
RXjava详细文档翻译
入门级别http://gank.io/post 点击打开链接
流程级别文档介绍
RX git
我理解Single的其实就是Observable变种。
Single类似于Observable(被观察者),
不同的是,它总是只发射一个值,或者一个错误通知,而不是发射一系列的值。
因此,不同于Observable需要三个方法onNext, onError, onCompleted,
订阅Single只需要两个方法:
onSuccess - Single发射单个的值到这个方法
onError - 如果无法发射需要的值,Single发射一个Throwable对象到这个方法
Single只会调用这两个方法中的一个,而且只会调用一次,调用了任何一个方法之后,订阅关系终止。
Single的操作符
Single也可以组合使用多种操作,一些操作符让你可以混合使用Observable和Single:操作符 | 返回值 | 说明 |
---|---|---|
compose | Single | 创建一个自定义的操作符 |
concat and concatWith | Observable | 连接多个Single和Observable发射的数据 |
create | Single | 调用观察者的create方法创建一个Single |
error | Single | 返回一个立即给订阅者发射错误通知的Single |
flatMap | Single | 返回一个Single,它发射对原Single的数据执行flatMap操作后的结果 |
flatMapObservable | Observable | 返回一个Observable,它发射对原Single的数据执行flatMap操作后的结果 |
from | Single | 将Future转换成Single |
just | Single | 返回一个发射一个指定值的Single |
map | Single | 返回一个Single,它发射对原Single的数据执行map操作后的结果 |
merge | Single | 将一个Single(它发射的数据是另一个Single,假设为B)转换成另一个Single(它发射来自另一个Single(B)的数据) |
merge and mergeWith | Observable | 合并发射来自多个Single的数据 |
observeOn | Single | 指示Single在指定的调度程序上调用订阅者的方法 |
onErrorReturn | Single | 将一个发射错误通知的Single转换成一个发射指定数据项的Single |
subscribeOn | Single | 指示Single在指定的调度程序上执行操作 |
timeout | Single | 它给原有的Single添加超时控制,如果超时了就发射一个错误通知 |
toSingle | Single | 将一个发射单个值的Observable转换为一个Single |
zip and zipWith | Single | 将多个Single转换为一个,后者发射的数据是对前者应用一个函数后的结果 |
//首先创建例子
Single.create(new Single.OnSubscribe<LocalAccount>() { @Override public void call(SingleSubscriber<? super LocalAccount> singleSubscriber) { singleSubscriber.onSuccess(new LocalAccount(getView().getContextCompat())); } }).flatMap(new Func1<LocalAccount, Single<List<MediaEntry>>>() { @Override public Single<List<MediaEntry>> call(LocalAccount localAccount) { if (localAccount != null) { return localAccount.getEntries(getPath(), SharedPrefUtils.isExplorerMode(getView().getContextCompat()), SharedPrefUtils.getFilterMode(getView().getContextCompat()), SortMemoryProvider.getSortMode(getView().getContextCompat(), getPath())); } return null; } });
相关文章推荐
- android---xml---include用法(导入另一个XML文件到本布局中
- android studio git设置忽略
- Android 绑定数据到界面控件
- Android 自定义控件3
- Android自定义控件2
- android启动界面和引导界面的动画
- android中引入外部字体
- Android 自定义控件1
- Android 反射获得控件对象
- 【Android实战】图片选取、拍摄、裁剪、上传
- android官方文档Training引导
- Android Studio 多渠道打包中针对不同渠道不同应用名称的处理方法
- Android测试之Monkey
- Android的Service服务的基本的介绍
- Android-Displaying Bitmaps Efficiently
- Android 获取手机系统的声音设置管理通知提醒的声音
- 【android学习1】:安装MySQL启动服务失败解决方法
- Android Toast防止重复显示的方法
- Android 滑动页面的实现,ViewPager使用详解
- android阅读器里的 txt 文本处理分页功能的实现: