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

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

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

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

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

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

Как исправить ошибки после запуска в Android studio - Программирование Android
Вот картинка помогите пожалуйста! http://www.cyberforum.ru/attachment.php?attachmentid=494944&stc=1&d=1425123834

Эмулятор исчезает сразу после запуска - Программирование Android
Запускаю в Android Studio эмулятор, окно открывается на пару секунд и исчезает. В чем может быть причина? Может быть кто сталкивался.

После запуска приложения запускать не главное активити, а сервис - Программирование Android
как сделать чтобы после запуска приложения запускалось не главное активити а сервис может как то прописать метод onStart в классе...

Приложение крашится на старте после первого нормального запуска - Программирование Android
Когда я первый раз устанавливаю приложение на емулятор то оно работает и можно открывать и читать файлы. Но когда закрываю приложение и...

Как правильно объявлять и использовать статические переменные в Lazarus - Lazarus
Эта тема уже обсуждалась применительно к Delphi http://www.cyberforum.ru/delphi-beginners/thread543156.html Автора интересовал вопрос...

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

2
Gabberr
102 / 102 / 17
Регистрация: 13.10.2009
Сообщений: 403
16.01.2015, 17:25 #2
Очень не желательно пользоваться статическими переменными, если только не реализуешь синглтон, особенно нельзя создавать статические ссылки на вью элемены, активити, фрагменты.
Время жизни статических переменных привязывается к времени жизни приложения и соответственно память из-под них освободиться тогда, когда виртуальная машина выкинет из памяти ваше приложение, а если, например, крутиться сервис, то произойти это может не скоро, переменные будут висеть и отжирать память...
Пользуйтесь стандартными средствами андроида, если нужно сохранить состояние - SharedPreferences, передать данные - Intent, итд.
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
16.01.2015, 17:52  [ТС] #3
Gabberr, спасибо за информацию. Странно, у меня такое поведение программы обычно даже после перезагрузки. Я сохраняю, как правило, целые числа и строки. Например, пользователь что-то пишет в строке поиска, переходит в другой фрагмент, потом возвращается - я восстанавливаю значение поиска. Да, можно через SharedPreferences.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2015, 17:52
Привет! Вот еще темы с ответами:

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

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

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

Статические переменные - C++
В чем польза использовать статические переменные вместо обыкновенных публичных в определении класса. К примеру: class record { ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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