IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> RXJava -> 正文阅读

[移动开发]RXJava

1.操作符基类

RxJava2.0提供了5中操作符的基类,分别为:

Observable,Maybe,Flowable,Completable,Single

?

1.1Observable和Flowable区别

同步:Observable和Flowable都是被观察者发送当前事件之后,一直阻塞到观察者处理完当前事件之后,才会发送下一个事件;

异步:Observable异步的情况下,被观察者不停的发送事件,直到所有事件发送完,不管观察者是否能够及时处理,就造成有大量的事例在缓冲区等待处理,造成内存不断增加,甚至OOM,就需要采用Flowable的背压策略

1.2 RxJava中的同步异步:

RxJava 除非你显式切换到其他的?Scheduler,或者你使用的某些操作符隐式指定了其他?Scheduler,否则?RxJava 相关代码就是同步执行的

1.3?切换线程

subscribeOn 切换被观察者(Observable)线程

observeOn 切换观察者(Observer)线程

1.4 几种常用的线程

Schedulers.immediate() 当前线程 不指定线程
AndroidScheduler.mainThread() Android主线程 操作ui
Schedulers.newThread() 常规新线程 耗时操作
Schedulers.io() io操作线程 网络请求,读写文件等
Schedulers.computation() cpu计算操作线程 大量计算操作

2.disposable

rxjava虽然好用,但是总所周知,容易遭层内存泄漏。也就说在订阅了事件后没有及时取阅,导致在activity或者fragment销毁后仍然占用着内存,无法释放。而disposable便是这个订阅事件,可以用来取消订阅

3. 操作符

4.使用详细

1、创建一个可观察对象Observable发射数据流

2、通过操作符Operator加工处理数据流

3、通过线程调度器Scheduler指定操作数据流所在的线程

4、创建一个观察者Observer接收响应数据流

5.示例

//Single
     Single.create(new SingleOnSubscribe<String>() {
           @Override
            public void subscribe(@NonNull SingleEmitter<String> e) throws
                    Exception {
                e.onSuccess("test");
            }
        }).subscribe(
            new Consumer<String>() {
                @Override
                public void accept(@NonNull String s) throws Exception {
                    System.out.println(s);
                }
            }, 
             new Consumer<Throwable>() {
                @Override
                public void accept(@NonNull Throwable throwable) throws Exception {
                    throwable.printStackTrace();
            }
        });

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:13:15  更:2022-04-01 00:14:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 19:53:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码