知识就是力量,时间就是生命。这篇文章主要讲述正确处理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中将其关闭。
推荐阅读
- BaseObject可以有NSObject,Mappable和Object swift
- Android Realm Schema不匹配错误
- 在Android Studio中集成Realm时出错
- 在React Native App上打开Realm Studio
- android错误(RealmClass注释不支持嵌套类)
- 非root用户手机Android用户可以查看/编辑存储在Realm DB中的数据吗()
- java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget
- Android(在已部署的应用程序中找不到资源异常)
- 如何将现有仪表板复制到Appdynamics中的新项目中