文档章节

Subscriber 与 Observer 区别

SunHacker
 SunHacker
发布于 2016/10/08 10:04
字数 413
阅读 326
收藏 0
,在 RxJava 的 subscribe 过程中,Observer 也总是会先被转换成一个 Subscriber 再使用。所以如果你只想使用基本功能,选择 Observer 和 Subscriber 是完全一样的。它们的区别对于使用者来说主要有两点: onStart(): 这是 Subscriber 增加的方法。它会在 subscribe 刚开始,而事件还未发送之前被调用,可以用于做一些准备工作,例如数据的清零或重置。这是一个可选方法,默认情况下它的实现为空。需要注意的是,如果对准备工作的线程有要求(例如弹出一个显示进度的对话框,这必须在主线程执行), onStart() 就不适用了,因为它总是在 subscribe 所发生的线程被调用,而不能指定线程。要在指定的线程来做准备工作,可以使用 doOnSubscribe() 方法,具体可以在后面的文中看到。 unsubscribe(): 这是 Subscriber 所实现的另一个接口 Subscription 的方法,用于取消订阅。在这个方法被调用后,Subscriber 将不再接收事件。一般在这个方法调用前,可以使用 isUnsubscribed() 先判断一下状态。 unsubscribe() 这个方法很重要,因为在 subscribe() 之后, Observable 会持有 Subscriber 的引用,这个引用如果不能及时被释放,将有内存泄露的风险。所以最好保持一个原则:要在不再使用的时候尽快在合适的地方(例如 onPause() onStop() 等方法中)调用 unsubscribe() 来解除引用关系,以避免内存泄露的发生。

© 著作权归作者所有

SunHacker
粉丝 5
博文 33
码字总数 40047
作品 0
深圳
程序员
私信 提问
RxBinding,Rxjava,RxPermissions的简单的总结

RxPermissions总结 Rxjava中知识点总结 Subscriber和Observer接口的区别: 在RxJava2版本中2.1.11中没有区别 <--特别注意:2种方法的区别,即Subscriber 抽象类与Observer 接口的区别 --> 1、...

OneXzgj
2018/05/13
0
0
RxJava从入门到不离不弃(一)——基本概念和使用

很久之前就想写篇文章,将RxJava的基本使用、各操作符和原理整理出来,分享给大家。断断续续地,看了许多大佬文章,结合自己的经验和想法,终于把它整理了出来,欢迎各位大佬拍砖。 更多内容...

Android机动车
2018/07/04
0
0
【Android】给Android 开发者的 RxJava 详解

前言 最近看了网上的很多文章和帖子,有关RxJava和RxAndroid的文章还是有很多的,关乎到文章的版权问题,这篇文章就不公开了,纯为自己的笔记,供自己查看、复习、使用等。 这篇文章的目的有...

定陶黄公子
2016/12/12
527
2
RxJava入门

RxJava => java响应式编程库 入门教程:http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/ 教程很不错,重点是评论 基本元素:Observable、Observer 基本概念:RxJava基于观察者模...

Turman
2016/07/12
57
0
RxJava 源码解析之观察者模式

了解 RxJava 的应该都知道是一个基于事务驱动的库,响应式编程的典范。提到事务驱动和响应就不得不说说,设计模式中观察者模式,已经了解的朋友,可以直接跳过观察者模式的介绍,直接到 RxJa...

骑摩托马斯
2017/03/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue中eventBus的使用

使用场景: 1、兄弟组件的通信,父子组件的通信 2、不同路由的通信 针对兄弟组件的通信,父子组件的通信 新建bus.js文件 import Vue from 'vue' var bus = new Vue() export default bus 在需...

tianyawhl
18分钟前
4
0
C# DBHelper

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Windows.Forms;namesp......

vga
21分钟前
4
0
Spring Boot中@ConditionalOnProperty使用详解

在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能。 Spring Boot中的使用 在Spring Boot的源码中,比如涉及到Http编码的自动配置...

程序新视界
22分钟前
7
0
centos7下安装mysql(完整配置)

https://blog.csdn.net/baidu_32872293/article/details/80557668

为何不可1995
24分钟前
5
0
如何从零到一设计一个MQ消息队列

消息队列整体设计思路 主要是设计一个整体的消息被消费的数据流。 这里会涉及到:消息生产Producer、Broker(消息服务端)、消息消费者Consumer。 1.Producer(消息生产者):发送消息到Broker。...

一只会编程的狼
30分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部