Intereting Posts
Как сделать мой ImageView фиксированным, независимо от размера растрового изображения Как добавить «Библиотечный проект» в IntelliJ IDEA? Переместите ImageView в другую позицию в анимированном виде на Android Панель действий вверх с фрагментами Портрет для телефона, альбом для планшета (Android-макет) Определите, есть ли доступ к Интернету на Android Сбой браузера эмулятора Android Удалить приложение из программы запуска программно в Android Ошибка приложения при запуске, вызванная NPE в android.content.Context.getString Почему я не должен устанавливать layout_width и layout_height в стиле? Масштабирование браузера для Android? Как добавить тень и границу на круговом изображении viewroid? Почему мое векторное масштабируемое масштабирование не ожидается? Использование атрибута для изменения цвета рисоваемого элемента Android Studio ADB уничтожает файлы logcat при сбое приложения! Ohh Myy

Время жизни статической переменной в Android

Когда я объявляю и инициализирую переменную как статическую в своей основной деятельности, и действие уничтожается. Могу ли я получить доступ к содержимому переменной?

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

Solutions Collecting From Web of "Время жизни статической переменной в Android"

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

В Android вы видели, что когда мы закрываем какое-либо приложение, оно не закрывается полностью, оно остается в последнем стеке приложений. Это можно увидеть, удерживая кнопку home (On Most Devices).

Сам Android выпустил последнее приложение, когда другому приложению нужна память

Могу ли я получить доступ к содержимому переменной?

Предполагая, что под «уничтожением» вы подразумеваете что-то вроде того, что пользователь нажимает BACK, да.

Участники статических данных живут в течение всего процесса.

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

Это не подходящее решение. Используйте сохраненный фрагмент или используйте onRetainNonConfigurationInstance() .

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

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

Android имеет концепцию пустого процесса, в котором говорится, что ваше приложение не может быть удалено из памяти, если оно часто используется пользователем, даже если все его компоненты уничтожены (действия, службы и / или широковещательные приемники), и в этом случае статические переменные не будут Полностью очищаться.

Класс приложения – лучший способ поделиться некоторыми временными переменными между компонентами, потому что класс приложения будет правильно создан во время запуска приложения и будет очищен от приложения для выхода из приложения.

Ссылка: http://skillgun.com/question/9849/android-provab/face-to-face-round/if-i-close-the-application-will-it-destroy-all-the-static-variables

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

Поэтому, когда мы закрываем объекты приложения, уничтожаем, но статическую переменную не уничтожаем. Но когда мы очищаем приложение, тогда класс уничтожает и, следовательно, статическую переменную. Когда-нибудь андроид убил класс из-за свободного пространства памяти, в этом случае статическая переменная destroy.