这里是场景 - :创建如何在Android中关闭/销毁Firebase参考?
甲火力参考
Firebase myRef = new Firebase(url) // In Main Activity
用户点击一个按钮导航到其他活动。
onPause()主活动被调用。是否有办法销毁这个构造函数?
此引用正在创建一些意外行为。 只需调用finish()进行Main活动就会销毁它?
这里是场景 - :创建如何在Android中关闭/销毁Firebase参考?
甲火力参考
Firebase myRef = new Firebase(url) // In Main Activity
用户点击一个按钮导航到其他活动。
onPause()主活动被调用。是否有办法销毁这个构造函数?
此引用正在创建一些意外行为。 只需调用finish()进行Main活动就会销毁它?
Firebase
对象是对Firebase数据库中位置的轻量级引用。没有必要(也没有能力)来管理他们的生命周期。正如@dex所评论的那样,您可以让Java垃圾收集器照顾它们。
另一方面,一旦您开始附加听众(例如addValueEventListener()
),您应该将其与removeEventListener()
分离到相应的生命周期事件中。另请参阅Firebase adding listeners in adapters in Android和How stop Listening to firebase location in android
是的弗兰克,正是我想要实现第二个链接是有帮助的。 – user3450804
只是为了澄清任何阅读此代码的参考在未来。在第二个链接中你已经提到var listener = ref.addValueEventListener(new ValueEventListener(){//实现onDataChange和onCanceled});数据类型应该是ValueEventListener而不是var。 – user3450804
@Frank我通过setValue方法添加用户在firebase数据库和addOnSuccessListener我完成活动,但它跳过一些键值意味着它没有添加完整的json数据,当我评论完成活动它正常工作如何解决这个问题 –
GC在JAVA中处理所有这些问题,为什么您要担心? – dex
你在哪里创建ref,在onPause发生之前你用它做了什么?什么是'意外行为'? – muratgu
@muratgu我想停止调用方法onDataChange()。我想摧毁构造函数,但弗兰克已经提到删除监听器会做的伎俩。 dex是的,记忆在这里根本不是问题。 – user3450804