我真的应该删除ValueEventListener吗?

我真的应该删除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在一个新线程中运行,我是否应该在任何时候删除它以进行正确的线程管理?(例如,并行运行的线程不多)。如果是,怎么做?


翻翻过去那场雪
浏览 448回答 2
2回答

桃花长相依

要删除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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java