我正在开发一个带有包含按钮列表的菜单的应用程序,当您单击其中一个按钮时,会打开另一个活动(每个按钮具有不同图像的相同活动)显示图像视图。问题是,当我在不同的按钮(打开新图像)中单击几次时,应用程序崩溃并且我无法解决它。有什么帮助吗?谢谢。
问问题
164 次
1 回答
1
这个问题是因为您在视图中使用了大量图像并且从不清理内存,然后在某一时刻您没有更多内存用于新图像。
解决该问题的一种形式是清理内存始终是您的破坏和活动。您可以覆盖活动中的下一个方法以清理内存。
@Override
public 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();
}
}
该方法查看视图,在您的情况下,这些视图将是您的 ImageView 和 ImageButton。最后,您需要在方法 onDestroy() 中调用此方法(也需要覆盖该方法)。
于 2013-07-26T18:07:36.207 回答