我正在寻找一种方法来在每个活动中使用 one 侦听我的数据库中的特定位置ChildEventListener
。
我有一个购物应用程序,我需要通过该应用程序监听用户的订单状态以显示警报并在本地保存数据。
我有两个想法:
OnResume()
OnPause()
每一个Activity
,但代码将在每一个被复制Activity
,因为它做同样的工作。MainActivity
,然后将广播发送到其他活动,但由于MainActivity
被破坏而失败——
监听一个节点并保持应用同步的最佳做法是什么?
Firebase 使用多个监听器时没有问题,即使是同一个监听器。只要您根据活动的生命周期移除侦听器,Firebase 就会几乎完美地处理侦听器。
你的类应该是这样的:
public class HelperClass extends Application {
private DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
public static verifyStatus() {
databaseReference.addChildEventListener() /* ... */
}
}
您需要根据活动的生命周期相应地删除侦听器。如果您在中添加了侦听器,则onStart
必须在onStop
. 如果您在中添加了侦听器,则onResume
必须在onPause
. 如果您在中添加了侦听器,则onCreate
必须在onDestroy
. 但请记住 onDestroy 并不总是被调用。
希望能帮助到你。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句