RXAndroid 的疑问

2018-06-14 15:46:34 +08:00
 MudBodhisattva

本人新人一枚,望各位前辈不吝赐教。 当 io 线程完成操作抛到 android 线程去更新 UI 后,这个订阅关系还在吗?还是说从内存中清空了? 如果说内存清空了,订阅关系也没有了,那么一下方法执行完毕之后 CompositeSubscription 我没有 unsubscribe 会怎么样,会造成内存泄漏吗。
public void data(){ CompositeSubscription.add( …… )

}

8112 次点击
所在节点    Android
4 条回复
KNOX
2018-06-15 09:22:12 +08:00
还在,建议你再看看观察者模式。
MudBodhisattva
2018-06-15 09:49:18 +08:00
@KNOX 请问我可以在 onNext 里面和 onError 这里对 CompositeSubscription 进行 unsubscribe 吗?
KNOX
2018-06-15 09:54:50 +08:00
@MudBodhisattva 如果已经添加订阅就可以。
MudBodhisattva
2018-06-15 09:56:13 +08:00
@KNOX

final CompositeSubscription mCompositeSubscriptions2 = new CompositeSubscription();
mCompositeSubscriptions2.add(
updateData(user)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<user>() {
@Override
public void onCompleted() {

}

@Override
public void onError(Throwable e) {
mCompositeSubscriptions2.unsubscribe();
}

@Override
public void onNext(user user) {
mCompositeSubscriptions2.unsubscribe();
}
})
);


比如说我 add 了好多,然后在其中一个取消订阅所有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/463115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX