【发布时间】:2018-08-03 07:44:25
【问题描述】:
在this 文章之后,我正在使用带有 RxJava/RxKotlin Flowable 的 Room。我让它运行了,但是在 ViewPager 中使用 3 个片段时遇到了问题。
我会带你看一下我的代码:
我有一个带有选项卡布局和三个片段(A、B 和收藏夹)的 viewpager。前两个片段包含可以添加到收藏夹的数据列表。
在最喜欢的片段中,我使用 Flowable 来监听 A 和 B 所做的更改并相应地更新列表。但是当一个项目在 A 和 B 中被收藏时,应用会崩溃,因为收藏片段中的 Flowable 订阅即使在片段不在前台时也会运行。
我想要的是能够在片段不在前台时停止订阅并在前台开始。
我试图在最喜欢的片段的 onPause 方法中停止它,但 flowable 没有取消订阅或处置方法。
我的代码是
dbRepository?.getAllImportant()?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe(getFlowableSubscriber())
【问题讨论】:
-
lambda-
subscribe会给你一个Disposable回来。保留它并在onPause中处理它。 -
@akarnokd 检查我上面的代码,这是在 Kotlin 中返回 Unit 数据类型
标签: android-fragments rx-java rx-java2 rx-android rx-kotlin2