我有一个小应用程序,这个应用程序有七个活动,基本上有6个是带有图像的布局,一个是MapActivity,在5个布局中,一个有内部类的ArrayList,每次我使用我的应用程序,内存增长到50mb,70mb,111mb ......我试着打电话给垃圾收集器但我没有收到预期的结果。
public class GC
{
public static final Runtime runtime = Runtime.getRuntime();
public static void Free()
{
runtime.gc();
}
}
答案 0 :(得分:1)
看看这里: Avoid memory leaks on Android
您需要删除图像的回调,否则会泄漏内存。
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
使用视图的根调用它(即unbindDrawables(findViewById(R.id.xml_layout_root));