java - Realm 生命周期 - 处理 android 中关闭/无效的实例

标签 java android realm

Realm java 文档建议将 Realm 实例与 Activity/Fragment 生命周期相关联,以便在 Activity 时打开/关闭 Realm >/Fragment 被创建/销毁。

假设 Activity 上的用户交互触发了一堆链式异步/基于回调的代码,这些代码最终在与 Activity 关联的 Realm 实例上发出读/写操作.

如果用户在交互后立即退出 Activity ,并且 Realm 实例作为Activity onDestroy的一部分关闭,那么确保事务/的好方法是什么?考虑到它是一个嵌套的回调链,对已关闭实例的查询会默默失败。

在调用任何方法之前检查 Realm 实例是否已关闭/有效是很乏味的。

同时,打开一个 Realm 实例并关闭它只是为了写入/读取某些内容可能会很昂贵。

避免此类崩溃的好方法是什么?

最佳答案

我认为这里的基本问题是:“如何防止回调死组件?”。答案在 Realm 文档中,here :组件退出时必须取消注册监听器(onPauseonStoponDestroy)。

如果我正确理解了这个问题,那么 Realm 是否开放的问题是一个转移注意力的问题。听众必须未注册。

关于java - Realm 生命周期 - 处理 android 中关闭/无效的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342574/

相关文章:

java - Sonar 显示旧代码中存在新的违规行为

Android:更改标题栏中的对齐方式

android - 使用 Dagger 2 和 setRetainInstance(true) 时获取 NullPointErexception;

java - 具有多个字段的 Realm java排序

ios - SwiftUI:当数据通过工作表添加到 Realm 数据库时, View 不会更新

java - 带有 https tsa 的 JDK 1.7 jarsigner 不再有效

java - 验证图像是否显示与网页上加载之间的区别?

java - 应用程序重新启动时,Kafka 最后偏移量会增加

android - Galaxy Nexus 是小型、普通、大型还是超大型设备?

swift - 如何删除所有对象并停止对 Realm 数据库的所有写入?