![]() |
|
Модераторы: javastic |
![]()
|
|
| Prospekt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 30.5.2012 Репутация: 1 Всего: 1 |
Имеется некая Активити, чтобы дать возможномть системе "поворачивать экран", ставить её на паузу и так далее по жизненному циклу, необходимо реализовать методы
onPostCreate(Bundle savedInstanceState) onSaveInstanceState(Bundle outState). Кроме того, чтобы приложение помнило свое состояние между вызовами необходимо (советуют) сохранять состояние в onPause() и восстанавливать его в onCreate(Bundle icicle) . Если производится поворот экрана, вызываются onSaveInstanceState(Bundle outState) и onPause(). Т.е. сохранение производится дважды, кроме того восстановление так же производится дважды в onCreate(Bundle icicle) и onPostCreate(Bundle savedInstanceState). Как этого избежать? Т.е. чтобы при удалении Активити системой выполнялись только быстрые методы с помощью Bundle, а при удалении её пользователем совершать более тяжелые операции долгострочного хранения. Интуиция подсказывает, что в методе onCreate(Bundle icicle) по передаваемому параметру можно понять после чего стартует активити (было ли оно уничтожено системой или пользователем). Возможно есть способ выполнить аналогичную проверку и в onPause(). Это первый вопрос. Второй вопрос. Почему сохранять состояние нужно именно в onPause()? Если, например, сохранять в onDestroy(), то как я понимаю единственным случаем когда сохранение не будет вызвано - это вариант, когда активити висит в фоне, а из телефона вынимается бутарея. Рано или поздно активити ведь удалится, а с ним же произойдет сохранение. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Android | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |