У меня есть приложение с прокручиваемой картой, которое пока имеет огромное растровое изображение.Он загружается нормально при запуске, но когда он теряет статус переднего плана и пользователь возвращает его обратно, я получаю ошибку нехватки памяти.В onPause он удаляет растровое изображение с помощью recycle и помечает его как ноль.OnResume проверяет, имеет ли map == значение null, и снова загружает растровое изображение, что приводит к сбою программы, несмотря на то, что я перерабатываю растровое изображение ...Все остальные ссылки на растровую карту сначала проверяют, является ли она пустой до загрузки / отрисовки.
onPause
protected void onPause() {
super.onPause();
Log.e("sys","onPause was called");
if (map != null)
{
map.recycle();
map = null;
System.gc();
Log.e("sys","trashed the map");
}
}
my onResume
protected void onResume(){
super.onResume();
Log.e("sys","onResume was called");
if (map == null)
map = BitmapFactory.decodeResource(getResources(),
R.drawable.lowresbusmap);
Log.e("sys","redrew the map");
}