2016-04-09 30 views
3

这里是场景 - :创建如何在Android中关闭/销毁Firebase参考?

甲火力参考

Firebase myRef = new Firebase(url) // In Main Activity 

用户点击一个按钮导航到其他活动。

onPause()主活动被调用。是否有办法销毁这个构造函数?

此引用正在创建一些意外行为。 只需调用finish()进行Main活动就会销毁它?

+0

GC在JAVA中处理所有这些问题,为什么您要担心? – dex

+0

你在哪里创建ref,在onPause发生之前你用它做了什么?什么是'意外行为'? – muratgu

+0

@muratgu我想停止调用方法onDataChange()。我想摧毁构造函数,但弗兰克已经提到删除监听器会做的伎俩。 dex是的,记忆在这里根本不是问题。 – user3450804

回答

7

Firebase对象是对Firebase数据库中位置的轻量级引用。没有必要(也没有能力)来管理他们的生命周期。正如@dex所评论的那样,您可以让Java垃圾收集器照顾它们。

另一方面,一旦您开始附加听众(例如addValueEventListener()),您应该将其与removeEventListener()分离到相应的生命周期事件中。另请参阅Firebase adding listeners in adapters in AndroidHow stop Listening to firebase location in android

+0

是的弗兰克,正是我想要实现第二个链接是有帮助的。 – user3450804

+1

只是为了澄清任何阅读此代码的参考在未来。在第二个链接中你已经提到var listener = ref.addValueEventListener(new ValueEventListener(){//实现onDataChange和onCanceled});数据类型应该是ValueEventListener而不是var。 – user3450804

+0

@Frank我通过setValue方法添加用户在firebase数据库和addOnSuccessListener我完成活动,但它跳过一些键值意味着它没有添加完整的json数据,当我评论完成活动它正常工作如何解决这个问题 –