1: create()操作符

private static void testCreate() {

Observable.create(new ObservableOnSubscribe() {

@Override

public void subscribe(ObservableEmitter emitter) throws Throwable {

for (int i = 0; i < 10; i++) {

System.out.println("emitter发射value数据:" + i);

emitter.onNext("value=" + i);

}

emitter.onComplete();

}

}).subscribe(new Consumer() {

@Override

public void accept(Object o) throws Throwable {

System.out.println(o);

}

});

}

打印结果:

emitter发射value数据:0

value=0

emitter发射value数据:1

value=1

emitter发射value数据:2

value=2

emitter发射value数据:3

value=3

emitter发射value数据:4

value=4

emitter发射value数据:5

value=5

emitter发射value数据:6

value=6

emitter发射value数据:7

value=7

emitter发射value数据:8

value=8

emitter发射value数据:9

value=9

1.1 :create()操作符总结

1)创建一个Observable,调用Observable.create();ObservableEmitter是事件的发送器,可以发送多个onNext()方法;一旦发送onComplete(),onError()事件之后,后续的事件将不会再发送;

2)创建一个Observer;里面有四个方法:onSubscribe(),onNext(),onError(),onComplete();

3)创建订阅关系 :Observable.subscribe(observer);

4) Observable.create() 创建 ObservableCreate被观察者操作符  

2:just()操作符

2.1 :just操作符作用:快速创建并发送事件

1)快速创建1个被观察者对象(Observable)

2)发送事件的特点:直接发送 传入的事件

3)Observable.just() 创建 ObservableJust被观察者操作符

2.2:使用示例

private static void testJust() {

Observable.just(1,2,3,4,5,6,7,8,9)

.subscribe(new Observer() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("use Subscribe connect Observable and

Observer");

}

@Override

public void onNext(Integer integer) {

System.out.println("Next event" + integer + " response");

}

@Override

public void onError(Throwable e) {

System.out.println("Error event response");

}

@Override

public void onComplete() {

System.out.println("Complete event response");

}

});

}

打印结果:

use Subscribe connect Observable and Observer

Next event1 response

Next event2 response

Next event3 response

Next event4 response

Next event5 response

Next event6 response

Next event7 response

Next event8 response

Next event9 response

Complete event response

2.3 :just()操作符拓展

just(T item) ------这个代码可以引出思考,T 可以是某个业务逻辑返回结果,那么就可以有下面的场景。

1)类似Android网络访问,rxjava能不能直接把helloMicky()放在非主线程访问

2)而把subscribe放在主线程访问呢?这样就解决了android繁琐的callback问题了

3:fromArray()操作符

3.1: fromArray()操作符特点

1)快速创建1个被观察者对象(Observable)

2)发送事件的特点:直接发送 传入的数组数据

3)实现数组的遍历

4)Observable.fromArray() 创建 ObservableFromArray 操作符对象

3.2 :代码解析

private static void tesrArray() {

Integer[] items = {0,1,2,3,4,5};

Observable.fromArray(items)

.subscribe(new Observer() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("use Subscribe connect Observable and Observer");

}

@Override

public void onNext(Integer integer) {

System.out.println("Next event" + integer + " response");

}

@Override

public void onError(Throwable e) {

System.out.println("Error event response");

}

@Override

public void onComplete() {

System.out.println("Complete event response");

}

});

}

打印结果:

use Subscribe connect Observable and Observer

Next event0 response

Next event1 response

Next event2 response

Next event3 response

Next event4 response

Next event5 response

Complete event response

4:fromIterable() 操作符

4.1: fromIterable()操作符特点

1)快速创建1个被观察者对象(Observable)

2) 发送事件的特点:直接发送 传入的集合List数据

3)集合元素遍历

4)Observable.fromIterable()创建

4.2 :代码示例

private static void testIterable() {

List items = new ArrayList<>();

for (int i = 0; i < 6; i++) {

items.add(i);

}

Observable.fromIterable(items)

.subscribe(new Observer() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("use Subscribe connect Observable and Observer");

}

@Override

public void onNext(Integer integer) {

System.out.println("Next event" + integer + " response");

}

@Override

public void onError(Throwable e) {

System.out.println("Error event response");

}

@Override

public void onComplete() {

System.out.println("Complete event response");

}

});

}

打印结果

use Subscribe connect Observable and Observer

Next event0 response

Next event1 response

Next event2 response

Next event3 response

Next event4 response

Next event5 response

Complete event response

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: 

发表评论

返回顶部暗黑模式