Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
#1

Как сбрасывать статические переменные после запуска? - Android

16.01.2015, 17:02. Просмотров 406. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Не первый месяц мучаюсь, приходилось откладывать.
А активностях и фрагментах создаю статическую переменные, требуется то позицию в списке запомнить, то выбор города и т.п. Проблема в том, что после выхода из приложения и запуска заново или даже просто при повторном открытии фрагмента эти самые статические переменные не обнуляются.
И ладно бы при перезапуске фрагмента, так и после открытия программы все статические переменные восстанавливают значения на момент выхода. Дико неудобно! А главное, везде, где я пытался поискать, указано, что в Java статические переменные существуют только во время работы программы и затем обнуляются. Люди даже специально через SharedPreferences их пытаются сохранить.
Сделал новый проект, добавил туда статическую переменную - и то же самое.
Приходится в начале работы программы принудительно обнулять все статические переменные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2015, 17:02     Как сбрасывать статические переменные после запуска?
Посмотрите здесь:

Как добавить в программу свою иконку запуска приложения Android
Android Поменять порядок запуска Activity
Android Экспорт приложения для запуска на устройстве
Вылетает приложение во время запуска Android
Android Widget и статические данные
Android Анимация запуска приложения
После запуска приложения запускать не главное активити, а сервис Android
Как исправить ошибки после запуска в Android studio Android
Узнать время, прошедшее от запуска экрана Android
Android Как защитится от повторного запуска Service (защита от дурака)?
Android Ошибка запуска ListView
Защита приложения от запуска в эмуляторе Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 402
16.01.2015, 17:25     Как сбрасывать статические переменные после запуска? #2
Очень не желательно пользоваться статическими переменными, если только не реализуешь синглтон, особенно нельзя создавать статические ссылки на вью элемены, активити, фрагменты.
Время жизни статических переменных привязывается к времени жизни приложения и соответственно память из-под них освободиться тогда, когда виртуальная машина выкинет из памяти ваше приложение, а если, например, крутиться сервис, то произойти это может не скоро, переменные будут висеть и отжирать память...
Пользуйтесь стандартными средствами андроида, если нужно сохранить состояние - SharedPreferences, передать данные - Intent, итд.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.01.2015, 17:52  [ТС]     Как сбрасывать статические переменные после запуска? #3
Gabberr, спасибо за информацию. Странно, у меня такое поведение программы обычно даже после перезагрузки. Я сохраняю, как правило, целые числа и строки. Например, пользователь что-то пишет в строке поиска, переходит в другой фрагмент, потом возвращается - я восстанавливаю значение поиска. Да, можно через SharedPreferences.
Yandex
Объявления
16.01.2015, 17:52     Как сбрасывать статические переменные после запуска?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru