【发布时间】:2015-04-01 16:36:29
【问题描述】:
我正在尝试找出使用 RealmBaseAdapter 的正确方法。
背景:
- 我有一个包含单个活动和许多片段的应用程序。
- 主屏幕是一个片段,其中包含一个带有子片段的 ViewPager(在操作栏中带有选项卡)。
- 每个子片段都包含一个列表视图,该列表视图使用 RealmBaseAdapter 的子类显示领域结果。
- 当用户在其中一个列表视图中点击某个项目时,会显示一个内部片段(它将主片段替换为其所有子片段)。
- 为了让 RealmBaseAdapter 工作,必须打开创建 RealmResults 的 Realm 对象(在 getInstance 之后和关闭之前),所以我有一个基础片段,它在 onStart 中创建 Realm 实例并在 onDestroy 中关闭它。
现在的问题:
应用程序中有太多与内存相关的崩溃,我想我明白原因了。
问题是总是至少有一个开放的Realm,这避免了它被清理。
意味着境界一直在记忆中生长,永远没有机会被清理。
根据领域的 github 存储库中的一些与内存相关的问题,我了解应该打开和关闭领域以尽可能短的操作,但这与 RealmBaseAdapter 需要打开原始领域对象的事实形成对比终其一生。
任何帮助/想法将不胜感激。
【问题讨论】:
标签: android out-of-memory realm realm-base-adapter