FirebaseRecyclerAdapter如何从数据库实时获取数据?使用addValueEventListener或addListenerForSingleValueEvent ...是什么?

时间:2019-03-02 12:41:07

标签: android firebase firebase-realtime-database recycler-adapter

我正在使用FirebaseRecyclerAdapter从Firebase数据库获取数据 但在不同的布局中,我使用的是addValueEventListener和addListenerForSingleValueEvent,并且我知道应该在离开布局(在onDestroy()中)之后删除addValueEventListener。 所以我的问题是在离开FirebaseRecyclerAdapter的布局后,如何从FirebaseRecyclerAdapter停止侦听器??

1 个答案:

答案 0 :(得分:0)

如果您使用的是Firebase-UI中的适配器,则可以通过调用adapter.stopListening()(通常在活动的onStop方法中)阻止适配器监听更改。

如果要将自己的侦听器附加到addValueEventListeneraddChildEventListener,则确实需要在不再需要它们时将其删除。为此,您需要跟踪添加的侦听器,然后调用removeEventListener on the query or reference。.

因此,如果您添加带有以下内容的侦听器:

ValueEventListener listener = new ValueEventListener() {
   ...
});
ref.addValueEventListener(listener);

您可以使用以下方法将其删除(例如在onStop中):

remove.removeEventListener(listener);

请注意,添加了addListenerForSingleValueEvent的侦听器在从数据库中获取第一个值后会自动将其自身删除,因此通常不需要删除代码中的那些侦听器。

相关问题