426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
1 | |
Как сбрасывать статические переменные после запуска?16.01.2015, 17:02. Показов 1740. Ответов 2
Метки нет (Все метки)
Здравствуйте!
Не первый месяц мучаюсь, приходилось откладывать. А активностях и фрагментах создаю статическую переменные, требуется то позицию в списке запомнить, то выбор города и т.п. Проблема в том, что после выхода из приложения и запуска заново или даже просто при повторном открытии фрагмента эти самые статические переменные не обнуляются. И ладно бы при перезапуске фрагмента, так и после открытия программы все статические переменные восстанавливают значения на момент выхода. Дико неудобно! А главное, везде, где я пытался поискать, указано, что в Java статические переменные существуют только во время работы программы и затем обнуляются. Люди даже специально через SharedPreferences их пытаются сохранить. Сделал новый проект, добавил туда статическую переменную - и то же самое. Приходится в начале работы программы принудительно обнулять все статические переменные.
0
|
16.01.2015, 17:02 | |
Ответы с готовыми решениями:
2
Как правильно объявлять и использовать статические переменные в Lazarus Как увидеть все статические переменные в IntelliJ IDEA? Пропадают локальные переменные функции после первого запуска функции Статические переменные |
105 / 105 / 19
Регистрация: 13.10.2009
Сообщений: 406
|
|
16.01.2015, 17:25 | 2 |
Очень не желательно пользоваться статическими переменными, если только не реализуешь синглтон, особенно нельзя создавать статические ссылки на вью элемены, активити, фрагменты.
Время жизни статических переменных привязывается к времени жизни приложения и соответственно память из-под них освободиться тогда, когда виртуальная машина выкинет из памяти ваше приложение, а если, например, крутиться сервис, то произойти это может не скоро, переменные будут висеть и отжирать память... Пользуйтесь стандартными средствами андроида, если нужно сохранить состояние - SharedPreferences, передать данные - Intent, итд.
1
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
16.01.2015, 17:52 [ТС] | 3 |
Gabberr, спасибо за информацию. Странно, у меня такое поведение программы обычно даже после перезагрузки. Я сохраняю, как правило, целые числа и строки. Например, пользователь что-то пишет в строке поиска, переходит в другой фрагмент, потом возвращается - я восстанавливаю значение поиска. Да, можно через SharedPreferences.
0
|
16.01.2015, 17:52 | |
16.01.2015, 17:52 | |
Помогаю со студенческими работами здесь
3
Статические переменные Статические переменные статические переменные Статические методы и переменные Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |