gpt4 book ai didi

android - Realm db ChangeListener 持久性 - 内存泄漏

转载 作者:行者123 更新时间:2023-11-29 17:19:10 25 4
gpt4 key购买 nike

我正在学习一个 Android 类,其中应用程序使用 Realm 数据库并将 ChangeListener 添加到异步查询结果中。文档指出应该在 onStart 中添加监听器并在 onStop 中删除监听器,以便在实例被销毁时不会泄漏内存。数据库配置和默认实例在扩展应用程序的类中声明 - 因此默认的 Realm 数据库实例将持续存在,但查询结果会吗?如果查询结果不持久,为什么需要从结果中删除监听器,而使用 onClickListener(例如)不需要删除该监听器?

最佳答案

我不知道 Realm 的内部结构,但让我们使用推导 =)

应用程序是一个单例(对象的一个​​实例,它将与您的应用程序一样存在)。

作为成员的 Realm 数据库实例将与 Application 对象一起存在。

一个调用者,例如 Activity,订阅结果(观察者模式 - “嘿,当我有 smth 时 ping 我”)。当 Activity 将自己添加为监听器时,它会提供其引用。因此垃圾收集器无法在配置更改(例如设备旋转)后回收 Activity。

onStop - 是一个回调,指示可能会破坏 Activity,因此它必须取消订阅(“不要抱住我”)。

关于android - Realm db ChangeListener 持久性 - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com