Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение и восстановление данных, Как избежать повторного восстановления 
:(
    Опции темы
Prospekt
Дата 30.5.2012, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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(), то как я понимаю единственным случаем когда сохранение не будет вызвано - это вариант, когда активити висит в фоне, а из телефона вынимается бутарея.
Рано или поздно активити ведь удалится, а с ним же произойдет сохранение.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.