マップアクティビティを作成するアプリケーションを作成しました。そこから、ユーザーはメニューに切り替わり、地図アクティビティに戻ります。約10これらのループの後、次のエラーが発生します。Android Memory Leak? MapViewでビットマップがVMバジェットエラーを超えました
02-28 21:35:54.780: E/AndroidRuntime(23502): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
私はアンバインドドローアブルソリューションを試みたここhttp://www.alonsoruibal.com/bitmap-size-exceeds-vm-budget/と様々な他のスレッドで提案されているが、それは助けにはなりませんでした。
唯一役立つのは、finish()を使用してマップアクティビティを手動で終了することですが、これは不自然なナビゲーション動作を引き起こします。ここで
は私のコードです:
MapActivityクラス
public class TestMapsForgeActivity extends MapActivity {
View mapView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mapView = new MapView(this);
}
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.map_menu, menu);
return true;
};
@Override
public boolean onOptionsItemSelected(MenuItem item) {
startActivity(new Intent(getApplicationContext(), MenuActivity.class));
return true;
}
}
MenuActivityクラス
public class MenuActivity extends Activity {
@Override
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
};
@Override
public boolean onOptionsItemSelected(MenuItem item) {
startActivity(new Intent(getApplicationContext(), TestMapsForgeActivity.class));
return true;
}
}
私は理解していないどのようなガベージコレクタは明らかにしない限り、適切にMapActivityを破壊しない、あります私は仕上げ()でそれを閉じます。しかし、アプリケーションがより多くのメモリを必要とするとすぐにアンドロイドはfinish()を呼び出すべきではありませんか?
誰でもこの問題について考えていますか?
ありがとうございます!
おかげで助けた多くのことを、。 – Damnum