Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Не первый месяц мучаюсь, приходилось откладывать.
А активностях и фрагментах создаю статическую переменные, требуется то позицию в списке запомнить, то выбор города и т.п. Проблема в том, что после выхода из приложения и запуска заново или даже просто при повторном открытии фрагмента эти самые статические переменные не обнуляются.
И ладно бы при перезапуске фрагмента, так и после открытия программы все статические переменные восстанавливают значения на момент выхода. Дико неудобно! А главное, везде, где я пытался поискать, указано, что в Java статические переменные существуют только во время работы программы и затем обнуляются. Люди даже специально через SharedPreferences их пытаются сохранить.
Сделал новый проект, добавил туда статическую переменную - и то же самое.
Приходится в начале работы программы принудительно обнулять все статические переменные.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2015, 17:02
Ответы с готовыми решениями:

Как правильно объявлять и использовать статические переменные в Lazarus
Эта тема уже обсуждалась применительно к Delphi...

Как увидеть все статические переменные в IntelliJ IDEA‎?
Как увидеть все статические переменные в Intellij Idea в режиме отладки, то есть увидить те которые...

Пропадают локальные переменные функции после первого запуска функции
Я написал код для расчёта электрического кольца. Я постепенно упрощаю схему параллельными и...

Статические переменные
Здравствуйте, искал инфу в интернете про статические переменные. Люди говорят разные вещи про...

2
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2015, 17:52
Помогаю со студенческими работами здесь

Статические переменные
Добрый день! AS только начал изучать, и есть одна проблемка с баннером: Баннер должен...

Статические переменные
В чем польза использовать статические переменные вместо обыкновенных публичных в определении...

статические переменные
class A { public: A(){} void f() { A::_a = this; } private: static A *_a;

Статические методы и переменные
Всем привет! Есть такое задание! Создать у класса Cat статическую переменную count, которая будет...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru