2013-10-27 5 views
0

Для восстановления состояния активности после его воссоздания (например, после изменения ориентации экрана) я реализовал onSaveInstanceState() и onRestoreInstanceState(). Это просто для сохранения/восстановления простой информации, такой как int, double и т. Д. Но как насчет сохранения/восстановления объектов, таких как Timer?Восстановление состояния активности

+0

Использовать общие ресурсы. –

+0

что вам нужно сделать, это сохранить значение таймера и выполнить таймер. при изменении ориентации активность разрушается и воссоздается. Поэтому отмените таймер и запустите таймер со значением, сохраненным – Raghunandan

+0

@Brontok sharedprefereces для примитивов, так как вы можете использовать их для сохранения и восстановления объектов, таких как таймер? и он используется для сохранения значений в пользовательских сеансах. – Raghunandan

ответ

0

В аргументах активности или сохраненных данных экземпляра нельзя хранить «живые» объекты (например, соединения db). Эти механизмы разработаны таким образом, что приложение может быть полностью остановлено, поэтому оно работает только с вещами, которые могут быть «сериализованы» и впоследствии восстановлены.

Что вы можете сделать, это использовать фрагменты. Если вы добавите фрагмент без пользовательского интерфейса (отметьте here, найдите «Добавление фрагмента без пользовательского интерфейса») и вызовите его setRetainInstance(true) фрагмент получит привязку к активности, сохранив любое изменение конфигурации.

Надеюсь, это поможет. (Помните, вы можете использовать фрагменты со старыми версиями Android с помощью пакета поддержки)

Смежные вопросы