【发布时间】:2017-05-14 02:02:55
【问题描述】:
如何删除为每个视图项创建的多个侦听器?
@Override
protected void populateViewHolder(final MessageViewHolder viewHolder, final Friends msg, int position) {
online = FirebaseDatabase.getInstance().getReference().child("online").child(msg.friend_id);
userListener = online.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Online online = dataSnapshot.getValue(Online.class);
if(online != null){
if (viewHolder.getDiff(online.timestamp) < 1){
viewHolder.donline.setVisibility(View.VISIBLE);
System.out.println("Is online");
} else {
viewHolder.donline.setVisibility(View.GONE);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
重新打开应用后,它将为 viewHolder 中的每个项目创建一个新的侦听器。如何在 onDestroy 中将它们全部删除?
【问题讨论】:
-
试试这个:- online.removeEventListener(userListener)
标签: android firebase firebase-realtime-database listener