RxJava学习1---创建
2017-12-20 14:41
113 查看
测试 版本:
1.通过create创建:
打印结果:
2.通过just创建多个
打印结果:
3.通过fromArray创建多个
或者:
4.通过generate创建
如果有初始化数据的话,可以这样做:
compile 'io.reactivex.rxjava2:rxjava:2.1.7'
1.通过create创建:
Observable observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception { Logger.log("subscribe",""); e.onNext("testTag"); e.onError(new NullPointerException()); e.onNext("testTag1"); e.onComplete(); } }); Observer observer = new Observer<String>() { @Override public void onSubscribe(@NonNull Disposable d) { Logger.log("onSubscribe",""); } @Override public void onNext(@NonNull String o) { Logger.log("onNext",""+o); } @Override public void onError(@NonNull Throwable e) { Logger.log("onError",""); } @Override public void onComplete() { Logger.log("onComplete",""); } }; observable.subscribe(observer);
打印结果:
onSubscribe: subscribe: onNext:testTag onError: //onError回调后就停止了
2.通过just创建多个
Observer observer = new Observer<String>() { @Override public void onSubscribe(@NonNull Disposable d) { Logger.log("onSubscribe",""); } @Override public void onNext(@NonNull String o) { Logger.log("onNext",""+o); } @Override public void onError(@NonNull Throwable e) { Logger.log("onError",""); } @Override public void onComplete() { Logger.log("onComplete",""); } }; Observable observable = Observable.just("testTag1","testTag2","testTag3","testTag4"); observable.subscribe(observer);//这里的传入类型可以是任意,但需要保证observer接受到的类型没错,不一致的时候需要进行类型转换
打印结果:
onSubscribe: onNext:testTag1 onNext:testTag2 onNext:testTag3 onNext:testTag4 onComplete:
3.通过fromArray创建多个
Observable observable = Observable.fromArray("testTag1","testTag2","testTag3","testTag4"); observable.subscribe(observer);
或者:
Observable observable = Observable.fromArray(new String[]{"testTag1","testTag2","testTag3","testTag4"});//这里的传入类型可以是任意,但需要保证observer接受到的类型没错,不一致的时候需要进行类型转换 observable.subscribe(observer);
4.通过generate创建
Observable observable = Observable.generate(new Consumer<Emitter<String>>() { @Override public void accept(Emitter<String> emitter) throws Exception { //通过重载调用emitter发送 emitter.onNext("testTag"); emitter.onComplete();//注意一定要调用这个方法,不然会一直回调重载 } }); observable.subscribe(observer);
如果有初始化数据的话,可以这样做:
Observable observable = Observable.generate(new Callable<Integer>() { @Override public Integer call() throws Exception { return 2;//初始化数据,是Integer的2 } }, new BiConsumer<Integer, Emitter<String>>() { @Override public void accept(Integer integer, Emitter<String> emitter) throws Exception { //emitter发射出去的是String类型 emitter.onNext(integer.toString()); emitter.onComplete(); } }); observable.subscribe(observer);
相关文章推荐
- RxJava学习基础与创建操作符
- RxJava的学习之创建操作符
- RxJava 学习笔记(五) --- Creating 创建操作符
- FlashCom学习第二课:创建一个使用视频的简单的Flash动画
- pybrain学习教程(二):创建数据集
- python学习笔记(九)创建和使用类
- halcon学习之solution matching模型的选择和创建
- SpringBoot入门学习一(如何使用IDEA创建一个SpringBoot应用)
- Linux进程线程学习笔记:进程创建
- C#学习笔记之创建Xml文档
- 数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
- ASP.NET ZERO 学习 —— (10) 应用开发Demo之创建实体对象
- Quick cocos2dx-Lua(V3.3R1)学习笔记(五)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
- RxJava的使用与深入学习
- unity3d游戏开发学习之使用3dmax创建导弹模型
- Node.js 学习笔记--- (2)创建一个简单的博客工程
- ASP.NET ZERO 学习 —— (11) 应用开发Demo之创建应用服务
- OAF学习笔记-9-创建的操作
- 学习Linux二(创建、删除文件和文件夹命令)
- Python模块学习:subprocess 创建子进程