Сохранить информацию о приложении Android после сбоя
Я создал собственный класс приложения, чтобы хранить глобальную информацию о моем приложении.
Мне нужно вернуть эту информацию после перезапуска моего приложения после сбоя. Мне не нужно хранить эту информацию на диске, потому что это просто информация от текущего сеанса пользователя, но если приложение упало, я должен начать именно с того места, где находился пользователь до сбоя.
Я решил двумя способами решить мою проблему: 1-Отслеживать изменения переменных и всегда сохранять их в SharedPreferences. 2-Всегда сохранять, затем в действии saveInstance, а затем сохранять из saveInstanceBundle.
Проблема с решением 1 - накладные расходы при каждом изменении. Проблема с решением 2 заключается в том, что мне нужно сериализовать каждую информацию.
Ребята, вы знаете какой-нибудь другой способ решить эту проблему? Мне нужно хранить только при падении приложения и загружать обратно после запуска после сбоя. Просто в этих двух сценариях.
1 ответ
В настоящее время я использую следующий код для отслеживания каждого сбоя моего приложения, поэтому я могу показать пользователю лучший экран сбоя, а также позволяет отправлять информацию о сбое на мой сервер для последующей отладки.
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
//Get information and save the information
}
});
Но в качестве предупреждения вам нужно установить это в каждой деятельности / услуге, которую вы создаете, чтобы она была на 100% эффективна.
Лично у меня есть 1 базовый класс для всех моих Деятельностей и 1 для всех моих Служб, а затем эти классы реализуют UncaughtExceptionHandler, так что можно сохранить ALOT headeche и copy-paste кода.