2015-10-03 6 views
0

Я создал собственный класс приложений, чтобы поддерживать глобальную информацию о моем приложении.Сохранять информацию о приложении Android после сбоя

Мне нужно получить эту информацию после того, как мое приложение перезапустится после сбоя. Мне не нужно хранить эти данные на диске, потому что это только информация из текущего сеанса пользователя, но если приложение разбилось, я должен начать точно, где был пользователь перед сбоем.

Я думал, двумя способами, чтобы решить мою проблему: 1-Track изменения переменных и всегда сохраняются его в SharedPreferences 2-Всегда сохранять затем в деятельности saveInstance и сохранить затем из savedInstanceBundle

Проблема с решением 1 - накладные расходы при каждом изменении. Проблема с решением 2 заключается в том, что мне нужно сериализовать каждую информацию.

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

+0

Почему бы не просто выяснить, почему ваше приложение падает и что-то об этом вместо этого? – e4c5

+0

@ e4c5 можете ли вы понять КАЖДУЮ возможную ситуацию, когда ваше приложение выйдет из строя? Наверное, нет, ни меня, поэтому стратегия восстановления после любой аварии всегда хорошая идея. – jonathanrz

+0

Более или менее да. – e4c5

ответ

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 кода.

+0

Если вам нужно перезапустить приложение после сбоя, вот хороший способ: http://stackoverflow.com/questions/2681499/android-how-to-auto-restart-application-after-its-been-force- закрыто – jonathanrz

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