С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279

Как восстановить значения при открытии приложения после нажатия кнопки назад

14.12.2016, 22:37. Показов 1828. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как гарантированно вызвать onSaveInstanceState. Столкнулся с такой ситуацией. Сохраняю значения для перезагрузки приложения. Если телефон вертится в эмуляторе, то все нормально. onSaveInstanceState вызывается, Bundle загружается, выгружается. Однако если свернуть приложение кнопкой назад. Потом его восстановить, то onSaveInstanceState не вызывается, соответственно с Bundle ничего не происходит. Но onCreate вызывается, и все переменные инициализируются заново. Соответственно все слетает.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.12.2016, 22:37
Ответы с готовыми решениями:

Выполнение серверного кода после нажатия кнопки «Назад» в браузере
Добрый день. Проблема в целом далеко не новая, но элегантного решения для своего случая пока не нашёл. Дело в том, что отображение...

Автоматическое нажатие кнопки при открытии приложения
Здравствуйте. Подскажите пожалуйста, как реализовать, что бы при открытии .exe автоматически нажималась бы кнопка? На форме допустим...

Сворачивание приложения при нажатии кнопки "Назад"
Как сделать, чтобы при нажатии кнопки "назад" приложение не закрывалось, а сворачивалось?

4
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
15.12.2016, 10:11
Alex_Fedor, при нажатии назад система скорее всего убивает ваше приложение поэтому его повторное открытие приводит в onCreate с savedInstanceState == null. это может произойти и при сворачивании кнопкой домой если систему хорошенько нагрузить.
0
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
15.12.2016, 10:47  [ТС]
Есть еще один момент. У меня так реализовано. Есть MainActivity и несколько фрагментов Fr1 Fr2 Fr3 и тд. один из которых выводится на лайоут MainActivity. Предположим сейчас загружено Fr1. Теперь если загрузить Fr2 , а затем повернуть телефон, то onSaveInstanceState в фрагменте Fr1 не вызовется, и все что пользователь там делал теряется. Есть какой то способ сохранения данных во фрагментах поэлегантнее, а то делать через onSaveInstanceState MainActivity как представлю, аж вздрагиваю.
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
15.12.2016, 12:24
Alex_Fedor, если глобально подходить к проблеме, то используйте MVP паттерн. Я использую реализацию Moxy, и у меня никаких проблем с восстановлением данных.
Как вариант, сделайте класс-синглетон, который хранит ваши введенные данные и при любом изменении данных во фрагменте в нем тоже обновляются данные. И когда ваш любой фрагмент оживает, он просто стучится в этот класс и забирает оттуда актуальные данные. Это не очень хороший подход, но если нужен быстрый способ, то он подойдет.
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
18.12.2016, 18:12
demixdn, каким образом паттерн может решать проблему событий? Что можно сделать в MVP, можно сделать и в MVC, насколько я понимаю.
Цитата Сообщение от Alex_Fedor Посмотреть сообщение
повернуть телефон, то onSaveInstanceState в фрагменте Fr1 не вызовется
На самом деле? http://stackoverflow.com/quest... ing-called

Добавлено через 2 минуты
Цитата Сообщение от Alex_Fedor Посмотреть сообщение
Однако если свернуть приложение кнопкой назад. Потом его восстановить, то onSaveInstanceState не вызывается
Логично. Поэтому надо сохранять данные, например, в SharedPreferences (кроме тех, которые нельзя в целях безопасности), а затем восстанавливать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2016, 18:12
Помогаю со студенческими работами здесь

В созданном браузере при нажатии кнопки "Назад" выходит из приложения
Всем привет! Недавно начал изучать как разрабатывать приложения под Android. Хочу написать браузер для Android специально для одного...

Полное завершение работы приложения при нажатии навигационной кнопки "Назад"
Здравствуйте. Имеется приложение. При нажатии кнопки "Домой" приложение выходит на главный экран и остается активным в панели...

Возврат значения кнопки при нажатия (массив кнопок)
Подскажите, пожалуйста, если это возможно : Есть массив кнопок, есть 1 обработчик события на 10 кнопок - при нажатии на 1 из 10 кнопок...

Ошибка при вызове readln после нажатия кнопки
Работаю с PascalABC.NET, и после компиляции, при нажатии на кнопку выскакивает ошибка. Как решить эту проблему? Uses GraphABC,ABCButtons;...

Почему Windows 7 загружается только после нажатия кнопки F1 при загрузки?
При этом при загрузки системы выводиться сообщения о неисправности жесткого диска, но никаких сбоев с системе не происходило.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru