我创建了一个自定义应用程序类来保存我的应用程序的全局信息。
我需要在应用程序从崩溃重新启动后恢复这些信息。我不需要在磁盘中存储这些信息,因为它只是来自用户当前会话的信息,但如果应用程序崩溃,我应该准确地开始用户在崩溃之前的位置。
我想通过两种方式来解决我的问题: 1 - 跟踪变量变化并始终将其保留在SharedPreferences中 2 - 始终保存在活动saveInstance中,然后从savedInstanceBundle
中保留解决方案1的问题是每次更改都会产生开销。解决方案2的问题是我需要序列化每个信息。
你们有没有其他方法可以解决这个问题?我只需要在应用程序崩溃时存储并在崩溃后重新加载。就在这两种情况下。
答案 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和代码复制粘贴。