2013-10-10 3 views
1

Я только начал писать свое первое приложение для Android и задал вопрос о его управлении памятью.Управление памятью активности Android

В моем приложении у меня есть только один основной деятельности, с двумя переменной-члена -

private ArrayList<String> textList 
private int textSize; 

Применение Продолжайте добавлять элементы в Textlist и TextSize уследить элементов (я знаю о textList.size())

Возвращаясь к исходному экрану, не закрывая приложения (нажатие кнопки домой), чтобы держать телефон на холостом ходу в течение длительного времени имеют результат в

textList.size() = 0 and textSize = previous stored value. 

Я пытаюсь понять рациональность потери значений в textList и textSize, сохраняя ее ценность.

+1

Возможно, что код инициализации снова вызван. –

ответ

1

Когда приложение не находится на переднем плане, Android может закрыть его ... вызывает onDestroy(). Я предполагаю, что, поскольку некоторое состояние сохраняется, то сама деятельность не перераспределяется, но вместо этого вы, вероятно, повторно инициализируете textList в функции жизненного цикла Activity, например onResume().

См «активность Lifecycle» на странице активности (от developer.android.com)

Android может также выпустить и перераспределить деятельность в разы - так что вы не можете полагаться на переменные-члены, чтобы сохранить свое состояние, когда вы не на переднем плане. Если вы хотите сохранить состояние, см. «Сохранение постоянного состояния» и «onSaveInstanceState()» в документах Activity android.

Смежные вопросы