项目地址
在MainActivity2那里
1.依赖:
implementation "io.reactivex.rxjava3:rxjava:3.1.2"
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
2.基本介绍:
RxJava:它是观察者模式。一般分为上游(被观察者),下游(观察者),订阅(这中间还有个中间操作,过滤,转换……,跟stream流有点一模一样,估计是……,哈哈哈)
什么是观察者模式呢:大致就是:苍老湿,她是否有新出电影,然后张三,李四,王五就会去观察她的动态,如果苍老湿有电影了,比方说奥特曼大战电影,张三,李四,王五就是去找资源,张三可能是一个程序猿,他就通过翻墙获取资源,然后观看。李四呢,他没什么技术,但是有钱,就去用钱的方式获取。王五呢,没什么钱,没什么技术,就去蹭蹭别人的电影,或者看看图片。
这里呢这个苍老师就是被观察者,而张三,李四,王五就是观察者。
1.上游被观察者:它是事件的创建者
//上游,被观察者
Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(@NonNull ObservableEmitter<Integer> emitter) throws Throwable {
}
});
2.下游观察者:
//下游观察者
Observer<Integer> observer = new Observer<Integer>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Integer integer) {
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
};
3.订阅:
//订阅
observable.subscribe(observer);
4.流行的方法
就是简单的发射1:emitter.onNext(1);
然后打印出来:
@Override
public void onNext(@NonNull Integer integer) {
Log.d(TAG, "onNext: 下游处理……"+integer);
}
Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(@NonNull ObservableEmitter<Integer> emitter) throws Throwable {
Log.d(TAG, "onSubscribe: 上游subscribe: 发射事件");
//发射事件
emitter.onNext(1);
Log.d(TAG, "subscribe: 上游subscribe:发射完成");
}
})
//订阅操作
.subscribe(
//观察者
new Observer<Integer>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.d(TAG, "onSubscribe: 连接成功");
}
@Override
public void onNext(@NonNull Integer integer) {
Log.d(TAG, "onNext: 下游处理……"+integer);
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
}
);