要从Firebase实时数据库接收数据,我需要注册监听器:
objectReference.addValueEventListener(valueEventListener);
删除(取消注册)此侦听器的正确方法是什么?
答案 0 :(得分:7)
删除侦听器的正确方法是使用以下代码行将其相应于活动的生命周期删除:
databaseReference.removeEventListener(valueEventListener);
请注意,如果您在onStart
中添加了监听器,则必须在onStop
中将其删除。如果您已在onResume
中添加了监听器,则必须在onPause
中将其删除。如果您在onCreate
中添加了监听器,则必须在onDestroy
中删除它。
但请记住,并不总是调用onDestroy
。
答案 1 :(得分:1)
最好检查侦听器是否为null或是否具有对象,因为如果侦听器对象为null,则将出现运行时错误
if(valueEventListener!=null){
databaseReference.removeEventListener(valueEventListener);
}
答案 2 :(得分:0)
您也可以这样:
private void cmdVision_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pnlNote.Enabled = true;
}
}
private void cmdVision_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
pnlNote.Enabled = false;
}
//MAJ4
else if (e.Button == MouseButtons.Right || e.Button == MouseButtons.Middle)
{
pnlNote.Enabled = false;
}
//MAJ4
}