正确处理Android上的Realm实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正确处理Android上的Realm实例相关的知识,希望对你有一定的参考价值。

我使用Realm作为我的android应用程序,我注意到每次打开应用程序时磁盘使用量都会增加。这样做的原因是我从未真正关闭过一个领域。我有大约5种不同的活动,使用来自Realm的数据和一个处理与Realm的所有交互的单例类。我选择只有一个类,因为它删除了很多重复的代码。当我使用带有观察者(活动)的单例类时,我不知道何时关闭领域或如何避免创建多个实例。

现在我每次需要访问服务器上的数据时都使用Realm.getIntanceAsync(),但据我所知,这不是最佳的,显然对Realm实例的处理不好。

如果我有单独的活动需要从Realm更新数据而不存储单个Realm的多个副本/版本,我将如何构建Realm的用法?如果可能的话,我想尽量避免代码重复,但我在Android上看到Realm实例的大部分例子都是在每个活动中打开一个领域实例,然后在活动的onDestroy()中关闭。我也希望少量的类依赖于Realm而不是整个应用程序。

编辑:我正在使用Realm对象服务器同步Realm。

答案

您不需要只有一个类来处理Realm管理。 Realm已经管理了多个实例,因此非常安全。

不关闭领域实例是不好的做法,你应该避免这样做。实际上有两种不同的方式:

  • 要么在需要时获取领域实例,然后尽快关闭它。如果运行异步请求,您可能会遇到麻烦。
  • 或者在onCreate / onResume方法中获取一个实例,将其存储为类成员并相应地在onDestroy / onPause中将其关闭。

但是,创建Realm的多个实例并不是磁盘使用量增加的原因。您可能更愿意检查是否正确设置了主键。因为如果你不注意,数据可能会被多次存储,导致孤立的数据不会被替换,从而使你的本地数据库成长。

以上是关于正确处理Android上的Realm实例的主要内容,如果未能解决你的问题,请参考以下文章

Realm保留一个已删除的对象

片段必须是公共静态类才能从实例状态正确重新创建

片段上的 Mapbox 膨胀视图

做Realm Migration Android的正确方法

共享项目中的 Xamarin Realm,错误“Fody 未正确安装”

Android 7 上的 VideoView 错误