【发布时间】:2015-11-20 19:16:49
【问题描述】:
就我而言,我有两个名为 A(主要活动)和 B(子活动)的活动。 A 将启动 B(B 使用 Glide 图像库加载一些图像)。
如果我使用 android 内存监视器获取内存分配,我可以清楚地看到内存分配增长。这完全没问题,因为我们在活动 B.Image Attached 中做一些与图像相关的事情。
所以我的问题是,如果我在活动 B 中按下后退按钮,它将进入活动 A,并且分配的内存不会被清除。内存分配仍将保持不变。
这是正常的安卓行为吗?
如果没有,我该如何手动清理内存?
我手动运行 GC 如下但同样的结果没有运气:(。
在活动 B
@Override
protected void onDestroy() {
super.onDestroy();
System.gc();
}
【问题讨论】:
-
据我所知,GC 只会在真正需要时运行(没有更多的堆空间),这没关系。否则,请确保绝对没有引用该内存(检查静态引用)并确保您清理了一些 Android 特定资源。
-
你找到解决办法了吗?
标签: java android memory-management android-memory android-glide