如果Android破坏我的应用程序进程并且还有一个Realm实例仍然打开会发生什么?

时间:2016-11-16 07:33:54

标签: realm

如果操作系统破坏了我的应用程序进程并且仍然打开了Realm实例,但没有执行任何事务,那么当我的应用程序再次启动时,是否有可能导致问题?如果没有,为什么不在应用程序的自定义ApplicationonCreate方法中打开Realm实例,存储对它们的全局引用,然后让操作系统关闭它们,如果/当它结束你的应用程序时?

1 个答案:

答案 0 :(得分:1)

UI线程上的这种方法没有任何遗传错误,因为它是一个自动更新Realm的Looper线程,但请记住,您需要为每个要处理的线程使用Realm实例。

Realm是一个MVCC数据库,这意味着它可以同时保持多个版本的数据存活。这意味着如果您在非looper线程上保持Realm实例打开,Realm将必须跟踪最旧版本和最新版本之间的所有更改。这可能会使文件大小膨胀。

一般情况下,我们建议按照以下链接中的说明控制生命周期。这将防止任何问题。

https://realm.io/docs/java/latest/#closing-realm-instances https://realm.io/docs/java/latest/#controlling-the-lifecycle-of-realm-instances