实例化和关闭Realm实例

杰拉德·博世(Gerard Bosch)

我对如何/何时/为何关闭领域实例感到困惑。在我的应用程序的整个过程中,我从未.close()在我的领域实例上调用过,因为如果关闭它,我将无法再使用我处理过的领域对象。也许关闭领域实例的要点是在我的应用程序onDestroy()中,就像我在我的应用程序中创建实例一样onCreate()实际上,我在我的应用程序中创建了Realm [*]的单例实例。

这(一个Realm单身人士)是一个好方法吗?如果我永不关闭自己的境界,会发生什么?

[*]实际上,我现在正在考虑在Realm实例的Flywheight集合中,而是每个线程存储一个实例,因为现在Service Intent开始在我的应用程序中播放,并且需要从其线程访问Realm。我认为在这里(在Service Intent中),我可以关闭领域,onDestroy()因为线程将完成工作。

克里斯蒂安·梅尔基奥

Realm在内部处理缓存,并使其尽可能地具有性能。因此,您不应该害怕打来电话Realm.getInstance()原因是close()需要这样做,因为您可能会冒泄漏内存的风险,最终将导致您的应用程序崩溃。

简而言之,您不应该自己创建Realm单例或其他缓存模式。您可以在此处阅读有关控制领域生命周期的最佳实践的更多信息:https : //realm.io/docs/java/latest/#controlling-the-lifecycle-of-realm-instances

请注意,Application.onDestroy()它不存在,Application.onTerminate()普通应用程序不会调用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章