当前位置: 首页 > 知识库问答 >
问题:

我真的应该删除ValueEventListener吗?

荣晨朗
2023-03-14
        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) {

            }
        });

共有1个答案

子车安和
2023-03-14

在讨论监听器时,是的,您需要将它们相应地移除到活动的生命周期中,为此您需要使用以下代码行:

databaseReference.removeEventListener(valueEventListener);

记住,如果你不这样做,你将会浪费你的电池和带宽。所以:

  1. 如果在onstart中添加了侦听器,则必须在onstop中删除它。
  2. 如果您已经在onresume中添加了侦听器,则必须在onpause中删除它。
  3. 如果在oncreate中添加了侦听器,则必须在ondestroy中删除它。
 类似资料:
  • 问题内容: 我知道该ValueEventListener线程在新线程中运行,是否应该在任何时间删除此线程以进行适当的线程管理?(例如,没有太多并行运行的线程)。如果是,该怎么办? 问题答案: 在谈论监听器时,是的,您需要根据活动的生命周期将其删除,为此,您需要使用以下代码行: 请记住,如果不这样做,最终将浪费您的电池和带宽。所以: 如果已在中添加了侦听器,则onStart必须在中将其删除onSto

  • 我最近开始使用AWS,我的第一项工作是使用lambda函数使用SQS队列。 我知道我不需要调用receiveMessage,因为lambda函数已经在这里接收消息: 我的问题是:我应该给sqs打电话吗。是否为收到的每条消息删除消息?我知道lambda函数会自动删除已处理的消息,但一位朋友告诉我,我仍然需要手动调用deleteMessage,因为如果发生错误,如果我不手动删除每条消息,所有消息都会返

  • 我了解到,每次部署firebase云功能时,firebase都会自动将一些数据保存在firebase存储中。我很想知道哪些数据被保存,如果删除是安全的,或者任何关于删除什么的建议。 我有一个小项目,200MB的云存储用于用户数据和10个云功能来完成各种任务。10月初,我做了很少的firebase部署操作,现在我看到了900MB的us.artifacts数据。请参阅下面的firebase和googl

  • 问题内容: 假设我们有两个实体,A和B。B与A具有多对一关系,如下所示: 现在,我要删除对象,并将删除操作级联到其所有子项。有两种方法可以做到这一点: 添加到OneToMany批注中,让JPA删除所有子项,然后再从数据库中删除A对象。 保持类不变,只需让数据库级联删除操作即可。 使用后面的选项有什么问题吗?这会导致实体管理器保留对已删除对象的引用吗?我之所以选择选项2而不是选项1的原因是,选项1生

  • 接口说明 删除指定的素材在数据库中的数据,只要管理员才能操作 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/server/1.0.0/deleteData 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 素材id validCode string for