Android - сохранение состояния приложения - PullRequest
6 голосов
/ 13 октября 2011

Я хочу сохранить состояние приложения, чтобы иметь возможность восстановить его после другого запуска.Лучше ли использовать метод onSaveInstanceState и сохранить его в Bundle или использовать SharedPreferences?

Спасибо

Ответы [ 3 ]

8 голосов
/ 13 октября 2011

Это зависит от вашего намерения.Использование onSaveInstanceState() - это только разумное решение, если вы хотите сохранить состояние во время изменений конфигурации и других событий перезапуска.Если вы стремитесь к истинному сохранению состояния приложения за пределами жизненного цикла приложения, вам следует рассмотреть возможность использования SharedPreferences или, возможно, даже использования базы данных.

1 голос
/ 28 декабря 2012

У меня могут не быть те же варианты разработки, что и у других постеров (я серьезно занимаюсь разработкой приложений с июля 2012 года), но я нашел решение, которое объединяет SharedPreferences, а также onSaveInstanceState ().

Мое приложение имеет заставку, которая считывает значения из SharedPreferences и присваивает их соответствующим переменным.Кроме того, каждое действие, которое я выполняю, имеет свой собственный метод onSaveInstanceState (), и я фиксирую все данные, которые мне нужно сохранить, в SharedPreferences там, в каждом действии.Поскольку onSaveInstanceState () запускается до нормального закрытия приложения или действия, оно должно выполнять резервное копирование значений данных при любых нормальных обстоятельствах.

Возможно, это не самое эффективное с точки зрения кода решение, особенно в больших приложениях с большим количеством операций.но что касается моих тестов, то оно защищает ваше приложение от потери данных в 99% случаев.

Если более опытный разработчик захочет принять или подтвердить или опровергнуть это, я уверен, что это обогатитвопрос и ответ.

0 голосов
/ 13 октября 2011

Я уверен, что onSaveInstanceState () - лучший вариант.

Здесь уже дано лучшее объяснение: Сохранение состояния активности Android с помощью Save Instance State

...