Давайте начнем с небольшого фона: что происходит при запуске приложения?
ОС запускает процесс и присваивает ему уникальный идентификатор процесса и выделяет таблицу процессов. Процесс запускает экземпляр DVM (Dalvik VM); Каждое приложение работает внутри DVM.
DVM управляет выгрузкой классов, жизненным циклом экземпляров, сборкой мусора и т. Д.
Время жизни статической переменной: статическая переменная возникает, когда класс загружается JVM, и умирает, когда класс выгружается.
Таким образом, если вы создадите приложение для Android и инициализируете статическую переменную, оно останется в JVM до тех пор, пока не произойдет одно из следующих действий:
1. класс выгружается
2. JVM отключается
3. процесс умирает
Обратите внимание, что значение статической переменной будет сохраняться при переключении на другое действие другого приложения, и ни одно из трех перечисленных выше не произойдет. Если произойдет что-либо из вышеперечисленного, статическое значение утратит свое значение.
Вы можете проверить это с помощью нескольких строк кода:
- печатать неинициализированную статическую переменную в onCreate вашей деятельности -> должен печатать ноль
- инициализировать статический. выведите его -> значение будет не нулевым
- Нажмите кнопку "Назад" и перейдите на главный экран. Примечание. Главный экран - это еще одно занятие.
- Запустите вашу деятельность снова -> статическая переменная будет отлична от нуля
- Завершить процесс приложения из DDMS (кнопка остановки в окне устройств).
- Перезапустите свою деятельность -> статическое значение будет нулевым.
Надеюсь, это поможет.