【问题标题】:Remove Firebase listener on activity disappear? [duplicate]删除活动上的 Firebase 侦听器消失? [复制]
【发布时间】:2019-01-08 01:08:25
【问题描述】:

在 iOS 中,当视图控制器消失时移除侦听器是 good practice。那么在Android世界中也是一样吗?我是否应该删除活动的onPause() 中的所有侦听器

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    如果我们谈论的是良好做法,您首先不应该让您的听众出现在您的Activity 中。每当发生配置更改(例如屏幕旋转)时,您的 Activity 将调用 onPauseonStoponDestroyonCreateonStartonResume。如果您的侦听器在您的Activity 中,则在配置更改时重建 ui 将花费比需要更长的时间。 Google 自己的解决方案是 ViewModelArchitecture Components 库中。听众应该在您的ViewModel 中,或者甚至可能是从ViewModel 调用的Repository。这一切都在提供的链接中进行了更详细的解释。

    【讨论】:

    • 是的,我知道。不过,当活动消失时,我应该在视图模型中分离侦听器吗?
    • 您应该扩展LiveData,开始在onActive 中侦听并在onInactive 中分离侦听器,通过ViewModel 公开扩展的LiveData 对象并从Activity 观察它。这样,它将为您处理所有复杂的生命周期,使您的应用更可靠,代码更易于阅读。
    猜你喜欢
    • 2019-01-24
    • 2018-09-04
    • 2015-09-07
    • 2012-09-10
    • 2021-08-13
    • 2012-07-22
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多