Realm java 文档建议将 Realm 实例与 Activity
/Fragment
生命周期相关联,以便在 Activity
时打开/关闭 Realm >/Fragment
被创建/销毁。
假设 Activity
上的用户交互触发了一堆链式异步/基于回调的代码,这些代码最终在与 Activity
关联的 Realm 实例上发出读/写操作.
如果用户在交互后立即退出 Activity ,并且 Realm 实例作为Activity
onDestroy
的一部分关闭,那么确保事务/的好方法是什么?考虑到它是一个嵌套的回调链,对已关闭实例的查询会默默失败。
在调用任何方法之前检查 Realm 实例是否已关闭/有效是很乏味的。
同时,打开一个 Realm 实例并关闭它只是为了写入/读取某些内容可能会很昂贵。
避免此类崩溃的好方法是什么?
最佳答案
我认为这里的基本问题是:“如何防止回调死组件?”。答案在 Realm 文档中,here :组件退出时必须取消注册监听器(onPause
、onStop
或 onDestroy
)。
如果我正确理解了这个问题,那么 Realm 是否开放的问题是一个转移注意力的问题。听众必须未注册。
关于java - Realm 生命周期 - 处理 android 中关闭/无效的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45342574/