Значение переменных контекста приложения, потерянных при ошибке приложения - PullRequest
2 голосов
/ 01 сентября 2011

Я заметил, что когда мое приложение сталкивается с ошибкой, значение переменных контекста моего приложения также повторно инициализируется до его исходного значения (а не обновленного значения). Исходя из моего понимания, это произошло потому, что приложение было воссоздано.

Как я могу сохранить и восстановить значения переменных контекста моего приложения при возникновении ошибки приложения? Я также буду рад, если бы вы могли дать более подробное объяснение того, как все работает на фоне моего приложения, когда оно сталкивается с ошибкой.

Примечание: я прочитал, что одним из решений для этого является использование SharedPreferences. Однако SharedPreferences сохраняет данные, даже когда приложение не работает. Я не хочу сохранять данные, когда приложение не работает. Я хочу сохранить данные только тогда, когда приложение работает или находится в фоновом режиме.

1 Ответ

3 голосов
/ 01 сентября 2011

Как сохранить и восстановить значения переменных контекста моего приложения при возникновении ошибки приложения?

Во-первых, не должно быть необработанного исключения.

Во-вторых, не полагайтесь на статические члены данных или пользовательские экземпляры подкласса Application. Есть много сценариев, в которых ваш процесс будет прекращен, и эти значения исчезнут. Их следует использовать для хранения в памяти постоянного содержимого и всего остального.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...