gpt4 book ai didi

java - 在 Android 上正确处理 Realm 实例

转载 作者:行者123 更新时间:2023-12-02 11:38:22 26 4
gpt4 key购买 nike

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

现在,每次需要访问服务器上的数据时,我都会使用 Realm.getIntanceAsync(),但据我了解,这不是最佳的,而且对 Realm 实例的处理显然很糟糕。

如果我有单独的 Activity ,所有这些 Activity 都需要来自 Realm 的更新数据,而不存储单个 Realm 的多个副本/版本,我将如何构建 Realm 的使用?我想尽可能避免代码重复,但我在 Android 上看到的 Realm 的大多数示例都是在每个 Activity 中打开 Realm 实例,然后在 Activity 的 onDestroy() 中关闭。我还希望有少量的类依赖于 Realm,而不是整个应用程序。

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

最佳答案

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

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

  • 要么在需要时获取 Realm 实例,然后尽快关闭它。如果运行异步请求,您可能会遇到麻烦。

  • 或者在onCreate/onResume方法中获取一个实例,将其存储为类成员并相应地在onDestroy/onPause中关闭它。

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

关于java - 在 Android 上正确处理 Realm 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48755321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com