登陆 | 注册 设为首页 | 加入收藏 | 联系我们
太和养老网
热词老年艺术  助老机构  养老系统  

中心区域北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 香港 澳门 台湾 全国城市养老院目录 全国县市养老院汇总目录 太和AI作品展 太和养老艺术网AI作品展示

您现在所在位置:首页 > 养老信息化 > RxJava-飞
RxJava-飞

 

2023/7/6 17:12:03 ('互联网')

RxJava概述RxJava 是一种响应式编程,来创建基于事件的异步操作库。基于事件流的链式调用、逻辑清晰简洁。RxJava 我的理解是将事件从起点(上游)流向终点(下游),中间有很多卡片对数据进操作并传递,每个卡片获取上(jk是什么意思是什么?JK是“じょしこうこうせい ”(女子高校生)罗马音 jyoshi koukousei 的简写(取其中“J”和“K”),通常指日本女高中生;JK也是ACGN次文化中的萌属性之一。)一个卡片传递下来的结果然后对事件进行处理然后将结果传递给下一个卡片,这样事件就从起点通过卡片一次次传递直到流向终点。RxJava观察者模式传统观察者是一个被观察者多过观察者,当被观察者发生改变时候及时通知所有观察者RXjava是一个观察者多个被观察者,被观察者像链条一样串起来,数据在被观察者之间朝着一个方向传递,直到传递给观察者 。RxJava原理理解

被观察者通过订阅将事件按顺序依次传递给观察者,


image.png
//RxAndroid中包含RxJava的内容,只引入RxAndroid还是会报错dependencies {    ......    compile 'io.reactivex.rxjava2:rxjava:2.1.3'    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'}
image.png创建Observer(观察者)
        Observer<Integer> observer = new Observer<Integer>() {             // 观察者接收事件前  ,当 Observable 被订阅时,观察者onSubscribe方法会自动被调用             @Override            public void onSubscribe(Disposable d) {                Log.d(TAG, "开始采用subscribe连接");            }            // 当被观察者生产Next事件             @Override            public void onNext(Integer value) {                Log.d(TAG, "对Next事件作出响应" + value);            }            // 当被观察者生产Error事件             @Override            public void onError(Throwable e) {                Log.d(TAG, "对Error事件作出响应");            }            // 当被观察者生产Complete事件             @Override            public void onComplete() {                Log.d(TAG, "对Complete事件作出响应");            }        };
       //Subscriber类 = RxJava 内置的一个实现了 Observer 的抽象类,对 Observer 接口进行了扩展        Subscriber<Integer> subscriber = new Subscriber<Integer>() {           // 观察者接收事件前 ,当 Observable 被订阅时,观察者onSubscribe方法会自动被调用             @Override            public void onSubscribe(Disposable d) {                 Log.d(TAG, "开始采用subscribe连接");            }            // 当被观察者生产Next事件             @Override            public void onNext(Integer value) {                Log.d(TAG, "对Next事件作出响应" + value);            }            // 当被观察者生产Error事件             @Override            public void onError(Throwable e) {                Log.d(TAG, "对Error事件作出响应");            }            // 当被观察者生产Complete事件             @Override            public void onComplete() {                Log.d(TAG, "对Complete事件作出响应");            }        };

Subscriber 抽象类与Observer 接口的区别

二者基本使用方式一致(在RxJava的subscribe过程中,Observer会先被转换成Subscriber再使用)Subscriber抽象类对 Observer 接口进行了扩展,新增了两个方法:
1. onStart():在还未响应事件前调用,用于做一些初始化工作,他是在subscribe 所在的线程调用,不能切换线程,所以不能进行界面UI更新比如弹框这些。
2. unsubscribe():用于取消订阅。在该方法被调用后,观察者将不再接收响应事件,比如在onStop方法中可以调用此方法结束订阅。调用该方法前,先使用 isUnsubscribed() 判断状态,确定被观察者Observable是否还持有观察者Subscriber的引用。创建 Observable (被观察者)
        Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() {            @Override            public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {                // 通过 ObservableEmitter类对象产生事件并通知观察者                // ObservableEmitter:定义需要发送的事件 & 向观察者发送事件                                     emitter.onNext(1);                emitter.onComplete();            }        });

RxJava 提供了其他方法用于 创建被观察者对象Observable

// 方法1:just(T...):直接将传入的参数依次发送出来  Observable observable = Observable.just("A", "B", "C");  // 将会依次调用:  // onNext("A");  // onNext("B");  // onNext("C");  // onCompleted();// 方法2:fromArray(T[]) / from(Iterable<? extends T>) : 将传入的数组 / Iterable 拆分成具体对象后,依次发送出来  String[] words = {"A", "B", "C"};  Observable observable = Observable.fromArray(words);  // 将会依次调用:  // onNext("A");  // onNext("B");  // onNext("C");  // onCompleted();

以上两种方法创建出来的观察者都是继承Observable,比如ObservableCreate、ObservableFromArray、ObservableMap...,

public interface ObservableSource<T> {    void subscribe(@NonNull Observer<? super T> observer);}--------------------------------------------------------------------------------------------------------public abstract class Observable<T> implements Observ



扫码加微信详细咨询太和智慧养老产品和平台服务!

 

 





版权声明:

---------------------------------------------------------------


所有信息来源于互联网,本文的版权归原作者所有,不代表本网观点和立场。

本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 81480447@qq.com 举报,一经查实,本站将立刻删除。



扫码加微信详细咨询太和智慧养老产品和平台服务!

 

养老资讯
助老机构介绍
评论
已有 0 条评论

最新评论

推荐养老院

您希望养老院位于
  • 不限
  • 东城
  • 西城
  • 崇文
  • 宣武
  • 朝阳
  • 丰台
  • 石景山
  • 海淀
  • 门头沟
  • 房山
  • 通州
  • 顺义
  • 昌平
  • 大兴
  • 怀柔
  • 平谷
  • 延庆
  • 密云
您希望的价格范围
  • 不限
  • 500以下
  • 500-1000
  • 1000-2000
  • 2000-3000
  • 3000-5000
  • 5000以上
老人的情况是
  • 不限
  • 自理
  • 半自理
  • 全护理
  • 特护

姓名

年龄

电话

全国城市养老院



关于我们 | 联系方式 | 网站地图 | 友情链接

Copyright 2010-2022 京ICP备18035644号-3 北京太和 版权所有