ArrayList не сохраняется на паузе - PullRequest
0 голосов
/ 22 октября 2011

Моя андроид игра содержит данные о разметке уровней в списке массивовПри тестировании загрузчика уровней я заметил, что иногда мои уровни не загружались, оставляя меня с черным экраном.Сначала я подумал, что это может быть моя текстура не перезагружается, но я доказал это неправильно, нарисовав объект отдельно от ArrayList, и он нарисовался просто отлично.Затем я использовал тег Log для проверки размера моего ArrayList.Как только я нажал кнопку «Домой», а затем снова открыл свое приложение, тег «Журнал» начал возвращать нулевой размер, означающий, что все мои данные были потеряны.Теперь я не хочу загружать свои данные уровня из файла каждый раз, когда вызывается onPause, так есть ли способ сохранить данные, хранящиеся в ArrayList?

1 Ответ

1 голос
/ 22 октября 2011

Проблема в том, что вы, вероятно, собираете мусор (т.е. ваша пауза становится разрушением из-за проблем с памятью). Реализуйте методы onSaveIntstanceState и onRestoreInstanceState в своей деятельности, чтобы посмотреть, решит ли это проблему.

Num1 отметил в комментарии хороший момент, который, по моему мнению, стоит отметить. Обратите внимание, что пакеты должны содержать небольшие объемы данных. Если ваш ArrayList большой, возможно, именно поэтому ваша деятельность собирает мусор в одном месте. Если это так, у вас есть один из двух вариантов. Явно сохраняйте данные на собственном диске в методе onDestroy (таким образом, вы можете делать это только тогда, когда вам действительно нужно, запись на диск может занять некоторое время) или пересчитывать данные, когда ваша деятельность возвращается в фокус. Об этом стоит подумать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...