为了账号安全,请及时绑定邮箱和手机立即绑定

我真的应该删除ValueEventListener吗?

我真的应该删除ValueEventListener吗?

翻翻过去那场雪 2019-07-16 10:35:33
我真的应该删除ValueEventListener吗?DatabaseReference Ref = FirebaseDatabase.getInstance().getReference(Constants.Client + "/" + path);         Ref.keepSynced(true);         Ref.addValueEventListener(new ValueEventListener() {             @Override             public void onDataChange(DataSnapshot dataSnapshot) {             }             @Override             public void onCancelled(DatabaseError databaseError) {             }         });我明白ValueEventListener在一个新线程中运行,我是否应该在任何时候删除它以进行正确的线程管理?(例如,并行运行的线程不多)。如果是,怎么做?
查看完整描述

2 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

要删除ValueEventListener,可以这样做:

删除侦听器的匿名性。

更改代码如下:-

      Ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

为此:

   ValueEventListener listener= new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });Ref.addValueEventListener(listener);

现在,您将能够删除侦听器:

   @Overridepublic void onDestroy() {if (Ref != null && listener != null) {
   Ref.removeEventListener(listener);
    }
 }

您需要删除它,这样侦听器就不会在其他生命周期(如onDestroy()


查看完整回答
反对 回复 2019-07-16
  • 2 回答
  • 0 关注
  • 447 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号