【发布时间】:2019-01-08 01:08:25
【问题描述】:
在 iOS 中,当视图控制器消失时移除侦听器是 good practice。那么在Android世界中也是一样吗?我是否应该删除活动的onPause() 中的所有侦听器
【问题讨论】:
标签: android firebase firebase-realtime-database
在 iOS 中,当视图控制器消失时移除侦听器是 good practice。那么在Android世界中也是一样吗?我是否应该删除活动的onPause() 中的所有侦听器
【问题讨论】:
标签: android firebase firebase-realtime-database
如果我们谈论的是良好做法,您首先不应该让您的听众出现在您的Activity 中。每当发生配置更改(例如屏幕旋转)时,您的 Activity 将调用 onPause、onStop、onDestroy、onCreate、onStart、onResume。如果您的侦听器在您的Activity 中,则在配置更改时重建 ui 将花费比需要更长的时间。 Google 自己的解决方案是 ViewModel 在 Architecture Components 库中。听众应该在您的ViewModel 中,或者甚至可能是从ViewModel 调用的Repository。这一切都在提供的链接中进行了更详细的解释。
【讨论】:
LiveData,开始在onActive 中侦听并在onInactive 中分离侦听器,通过ViewModel 公开扩展的LiveData 对象并从Activity 观察它。这样,它将为您处理所有复杂的生命周期,使您的应用更可靠,代码更易于阅读。