ボタンのリストを含むメニューを使用してアプリケーションを開発しています。これらのボタンのいずれかをクリックすると、別のアクティビティ (ボタンごとに異なる画像を持つ同じアクティビティ) が開かれ、イメージビューが表示されます。問題は、別のボタン (新しい画像を開く) を数回クリックすると、アプリがクラッシュし、解決できないことです。何か助けはありますか?ありがとう。
質問する
164 次
1 に答える
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 に答える