崩溃后保留Android应用程序信息

时间:2015-10-03 00:13:21

标签: android android-lifecycle android-applicationinfo

我创建了一个自定义应用程序类来保存我的应用程序的全局信息。

我需要在应用程序从崩溃重新启动后恢复这些信息。我不需要在磁盘中存储这些信息,因为它只是来自用户当前会话的信息,但如果应用程序崩溃,我应该准确地开始用户在崩溃之前的位置。

我想通过两种方式来解决我的问题: 1 - 跟踪变量变化并始终将其保留在SharedPreferences中 2 - 始终保存在活动saveInstance中,然后从savedInstanceBundle

中保留

解决方案1的问题是每次更改都会产生开销。解决方案2的问题是我需要序列化每个信息。

你们有没有其他方法可以解决这个问题?我只需要在应用程序崩溃时存储并在崩溃后重新加载。就在这两种情况下。

1 个答案:

答案 0 :(得分:1)

我目前正在使用以下代码来跟踪我的应用程序崩溃的时间,因此我可以向用户显示更好的崩溃屏幕,并且它还允许我将有关崩溃的信息发送到我的服务器以供以后调试。

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        //Get information and save the information 
    }
});

但是,作为警告,您需要在为其创建的每个活动/服务中设置此值,以使其100%有效。

就我个人而言,我的所有活动都有1个基类,所有服务都有1个基类,然后这些类实现了UncaughtExceptionHandler,这样可以节省大量的headeche和代码复制粘贴。