を破壊することができません。私はすべてのViewGroupにチャイルズを削除するには、次のコードを使用しています:アンドロイド:活動
protected void onDestroy() {
super.onDestroy();
this.liberarMemoria();
}
public void liberarMemoria(){
imagenes.recycleBitmaps();
this.unbindDrawables(findViewById(R.id.RelativeLayout1));
System.gc();
}
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();
}
}
どこビュー:R.id.RelativeLayout1はListViewのです。
しかし、私は例外が備わっていこれを行う:
E/AndroidRuntime(582): java.lang.RuntimeException: Unable to destroy activity {...}: java.lang.UnsupportedOperationException: removeAllViews() is not supported in AdapterView
どのように私はこの問題を解決することができますか?
AddapterViewがこの操作をサポートしない理由は何ですか? AdapterViewの公式リファレンスで何も見つかりませんでした。 – r1k0
@ r1k0、そうです、それはAdapterViewがその子を内部的に管理するからです。内部状態が壊れる可能性があるため、追加/削除できません。 – inazaruk