Жизненный цикл статических переменных в Android

Каков жизненный цикл статических переменных в Android?

Я обнаружил, что иногда некоторые статические переменные, связанные с действиями, оказывались неинициализированными, хотя ранее они были инициализированы! Я думал, что когда статическая переменная инициализируется, она остается такой на протяжении всей жизни приложения, но, похоже, это не так.


person sunil sunny    schedule 24.01.2014    source источник
comment
Как вы определяете жизнь приложения?   -  person Henry    schedule 24.01.2014
comment
Как вы определяете приложение?   -  person SK9    schedule 24.01.2014
comment
Я обнаружил, что иногда некоторые статические переменные, связанные с действиями, оказывались неинициализированными, хотя ранее они были инициализированы! На самом деле все наоборот.   -  person    schedule 18.07.2016


Ответы (2)


Android может убить ваше приложение, если ему не хватает памяти и все его действия находятся в фоновом режиме (не видны). Но ваша активность остается в истории, и пользователь может активировать ее снова. В этом случае система воссоздаст ваше приложение и восстановит его состояние. Чтобы справиться с этим случаем, вы должны хранить состояние вашего приложения и действия в постоянной памяти (файлы, база данных и т. д.). Дополнительную информацию можно найти здесь http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState

person Yury Zaitsev    schedule 24.01.2014

Это зависит от того, определили ли вы его, например:

Если процесс будет уничтожен, все статические переменные будут повторно инициализированы до значений по умолчанию.

Таким образом, любое значение, которое вы установили в действии A, не будет сохраняться. То же самое происходит, когда активность уничтожается.

person An-droid    schedule 24.01.2014