Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果对一个onComplete主题进行了RxJava调用,是否必须再次手动取消订阅?

如果对一个onComplete主题进行了RxJava调用,是否必须再次手动取消订阅?
EN

Stack Overflow用户
提问于 2014-09-01 23:41:34
回答 1查看 16.2K关注 0票数 46

我在片段中使用了一个RxJava ReplaySubject

我试图以一种方式使用ReplaySubject,我希望主题在完成之前执行一个进程(可能超过片段的生命周期)。

在这个过程完成后,我想释放我理解的-as的资源--在注册观察者时取消订阅(在我的例子中,这就是主题本身)。

github发布线程 @benjchristensen说:

如果它是一个可观测的,那么它应该发出一个onCompleted并完成。 如果它是一个观察者,那么当它调用Observable.subscribe时,它应该从它收到的订阅中取消订阅,它将给观察到的用户一个关闭和清理的机会。

如果它是一个主题,-which既是观察者又是可观察的--行为是什么?如果我在这个主题上调用onComplete,这基本上意味着订阅被停止了吗?因此,我不必通过注册观察者来手动取消订阅?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 15:28:10

主体是一个相对较薄的层,在可观察到的基础上,允许您从可观察到的外部源输入onNext()onCompleted()onError()调用。他们的取消订阅行为和可观察的行为是一样的。如果在主题上调用onCompleted()onError(),则订阅者将被取消订阅。不需要对从unsubscribe()返回的订阅调用Observable.subscribe()

对于ReplaySubject,请注意,在垃圾收集之前不会清理资源。即使在onCompleted()被调用到ReplaySubject上之后,订户仍然可以订阅,并且它将接收在订阅之前发出的所有原始onNext()onCompleted()onError()呼叫。

票数 64
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25618270

复制
相关文章
RxJava三问—基础知识点回顾
然后开始提问题了,Rxjava涉及的内容很多,我还是会以三个问题为单位,从易到难,一篇篇的说下去,今天的三问是:
码上积木
2020/12/11
6210
Android RxJava:一步步带你源码分析 RxJava
步骤1:创建被观察者(Observable)& 定义需发送的事件 步骤2:创建观察者(Observer) & 定义响应事件的行为 步骤3:通过订阅(subscribe)连接观察者和被观察者
Carson.Ho
2019/02/22
5960
Carson带你学Android:手把手带你源码分析RxJava
步骤1:创建被观察者(Observable)& 定义需发送的事件 步骤2:创建观察者(Observer) & 定义响应事件的行为 步骤3:通过订阅(subscribe)连接观察者和被观察者
Carson.Ho
2022/03/24
3630
Carson带你学Android:手把手带你源码分析RxJava
Android技能树 — Rxjava取消订阅小结(2):RxLifeCycle
现在很多项目都在使用Rxjava了,对于RxJava的使用,估计都很熟悉了,但是很多人在使用RxJava的时候容易产生内存泄漏问题,比如我们在用RxJava配合Retrofit的时候,发出请求出去,拿到数据后我们可能会去刷新界面,但是如果这时候网络比较差,返回比较慢,而我们的Activity这时候关闭了,那RxJava当拿到返回的数据的时候去刷新界面就会报空指针异常了。所以我们当Activity关闭的时候,我们这时候如果RxJava还没执行完,我们应该取消订阅。
青蛙要fly
2018/08/29
2.1K0
Android技能树 — Rxjava取消订阅小结(2):RxLifeCycle
三个问题带你回顾Android RxJava基础,这个神奇又难用的框架
然后开始提问题了,Rxjava涉及的内容很多,我还是会以三个问题为单位,从易到难,一篇篇的说下去,今天的三问是:
Android技术干货分享
2020/12/02
1.2K0
三个问题带你回顾Android RxJava基础,这个神奇又难用的框架
Rxjava 2.x 源码系列 - 基础框架分析
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/80501816
程序员徐公
2018/09/18
5260
Rxjava 2.x 源码系列 - 基础框架分析
Android RxJava:这是一份面向初学者的RxJava使用指南
更重要的是,随着程序逻辑的复杂性提高,它依然能够保持简洁 & 优雅。所以,一般建议使用这种基于事件流的链式调用方式实现RxJava。
Carson.Ho
2019/02/22
4500
Carson带你学Android:手把手带你入门神秘的Rxjava
Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。
Carson.Ho
2022/03/24
4330
Carson带你学Android:手把手带你入门神秘的Rxjava
Android技能树 — Rxjava取消订阅小结(1):自带方式
现在很多项目都在使用Rxjava了,对于RxJava的使用,估计都很熟悉了,但是很多人在使用RxJava的时候容易产生内存泄漏问题,比如我们在用RxJava配合Retrofit的时候,发出请求出去,拿到数据后我们可能会去刷新界面,但是如果这时候网络比较差,返回比较慢,而我们的Activity这时候关闭了,那RxJava当拿到返回的数据的时候去刷新界面就会报空指针异常了。所以我们当Activity关闭的时候,我们这时候如果RxJava还没执行完,我们应该取消订阅。
青蛙要fly
2018/08/29
1.2K0
Android技能树 — Rxjava取消订阅小结(1):自带方式
Carson带你学Android:面向初学者的RxJava使用指南
更重要的是,随着程序逻辑的复杂性提高,它依然能够保持简洁 & 优雅。所以,一般建议使用这种基于事件流的链式调用方式实现RxJava。
Carson.Ho
2022/03/24
3070
Carson带你学Android:面向初学者的RxJava使用指南
RxJava2.0你不知道的事(三)
后面三种观察者模式差不多,Maybe/MaybeObserver可以说是Single/SingleObserver和Completable/CompletableObserver的复合体。
开发者技术前线
2020/11/23
6620
RxJava2.0你不知道的事(三)
Android:这是一篇 清晰 易懂的Rxjava 入门教程
2、如果读者还没学习过Rxjava 1.0也没关系,因为Rxjava 2.0只是在Rxjava 1.0上增加了一些新特性,本质原理 & 使用基本相同
用户2802329
2018/08/07
8450
Android:这是一篇 清晰 易懂的Rxjava 入门教程
Android:手把手带你入门神秘的 Rxjava
即RxJava原理可总结为:被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 & 作出对应的响应动作。具体如下图:
Carson.Ho
2019/02/22
6370
Android RxJava的使用
首语 最近因为项目上线,挤不出时间,已经好久没有更新博客了😛,目前项目也做差不多了,写几篇总结类型的博客,梳理一下。 本文主要对RxJava及常用操作符的使用进行总结,同时对RxJava在Android中几种常见的使用场景进行举例。 简介 RxJava是Reactive Extensions的Java VM实现:该库用于通过使用可观察的序列来组成异步和基于事件的程序。 Rx是Reactive Extensions的缩写的简写,它是一个使用可观察数据流进行异步编程的编程接口,Rx结合了观察者模式、迭代器模
八归少年
2022/06/29
3K0
Android RxJava的使用
这是一篇清晰易懂的 Rxjava 入门教程
原文作者:Carson_Ho 原文地址:http://www.jianshu.com/p/a406b94f3188 特别声明:本文为Carson_Ho原创并授权发布,未经原作者允许请勿转载,转载请联系
非著名程序员
2018/02/09
6.8K0
这是一篇清晰易懂的 Rxjava 入门教程
All RxJava - 为Retrofit添加重试
在我们的日常开发中离不开I/O操作,尤其是网络请求,但并不是所有的请求都是可信赖的,因此我们必须为APP添加请求重试功能。
小鄧子
2018/08/20
1.7K0
All RxJava - 为Retrofit添加重试
【RxJava】RxJava 基本用法 ( 引入 RxJava 依赖 | 定义 Observer 观察者 | 定义 Observable 被观察者 | 被观察者订阅观察者 )
Gradle 项目中 , 在 build.gradle 构建脚本中 , 添加如下依赖 ;
韩曙亮
2023/10/11
6230
RxJava2.X 源码解析(二) :神秘的取消订阅流程
我们在前一篇# RxJava2.0源码解析(一)初步分析了RxJava从创建到执行的流程。
陈宇明
2020/12/15
7950
RxJava2.X 源码解析(二) :神秘的取消订阅流程
点击加载更多

相似问题

RXJava从订阅调用中取消订阅

10

RxJava:未调用订阅的取消订阅()方法

12

取消订阅()后的RXJava Single,是否未调用doAfterTerminate()?

10

RxJava:从onNext内部调用取消订阅

12

RxJava:如何从可观察对象取消订阅主题

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文