【问题标题】:When to subscribe/bind streams in android lifecycle?何时在 android 生命周期中订阅/绑定流?
【发布时间】:2019-05-13 17:33:37
【问题描述】:

我正在使用具有 MVVM 架构的 rxAndroid。在我的 Activity 中,我需要绑定我的流,然后从服务器获取数据,最终将调用下游。

我的理由如下:
- 我需要取消订阅onStop() 中的流(onDestroy 会导致内存泄漏)。
-> 因此我需要在onStart() 订阅它们(否则从后台返回不会重新创建流)。
-> 因此我需要在onStart() 中或之后获取我的数据,因为必须先绑定流,然后才能开始调用上游。

但是在这种情况下,每次我在后台返回应用程序时,它都会调用 fetch 方法,这不是我想要的行为。理想情况下,我想调用一次 fetch 方法,例如在 onCreate() 中。

我怎样才能很好地处理这个问题?我尝试在 SO 和其他网站上找到解决方案,但没有运气。

【问题讨论】:

    标签: android kotlin rx-android rx-kotlin


    【解决方案1】:

    所以你的意思是你只希望在 Activity 被销毁并重新启动时它还没有完成的情况下重新创建流?在这种情况下,请考虑一个 BehaviorSubject。

    它将存在于 Activity 的上下文之外(确保不要引用主题中的任何 Activity,弱引用也可以。)

    当您从新活动重新连接到它时,它将提供最后获取的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 2020-07-26
      • 2019-03-10
      • 2016-11-06
      • 2014-02-01
      • 2022-12-14
      • 1970-01-01
      相关资源
      最近更新 更多