我们说我有一个ValueEventListener
来监听某个查询
val reference = FirebaseDatabase.getInstance().getReference(FirebaseConstants.ARCHIVE)
reference.orderByKey().limitToLast(30).addValueEventListener(archiveListener)
我是否需要从查询中删除侦听器,如此
FirebaseDatabase.getInstance().getReference(FirebaseConstants.ARCHIVE).orderByKey().limitToLast(30).removeEventListener(archiveListener)
还是会从参考对象中删除呢?像这样
FirebaseDatabase.getInstance().getReference(FirebaseConstants.ARCHIVE).removeEventListener(archiveListener)
答案 0 :(得分:1)
Firebase中的常见做法是使用以下代码行将监听器相应地移除到活动的生命周期:
print (dfs['leaf1'])
leaf1
0 1.0
1 1.0
2 4.0
3 1.0
4 4.0
5 1.0
6 1.0
7 1.0
8 4.0
9 1.0
print (dfs['leaf3'])
Empty DataFrame
Columns: [leaf3]
Index: []
databaseReference.removeEventListener(valueEventListener);
方法添加了监听器,则必须使用onStart
方法将其删除。onStop
方法添加了监听器,则必须使用onResume
方法将其删除。onPause
方法添加了监听器,则必须使用onCreate
方法将其删除。但请记住,并不总是调用onDestroy
。
如果您使用的是onDestroy
,则意味着addListenerForSingleValueEvent()
方法会立即执行,并且在执行该方法后,一旦它停止侦听它所附加的参考位置。所以在这种情况下,不需要删除监听器。