崩溃后保留 Android 应用程序信息
Retain Android Application info after crash
我创建了一个自定义应用程序 class 来保存我的应用程序的全局信息。
我需要在我的应用程序从崩溃中重新启动后取回这些信息。我不需要将这些信息存储在磁盘中,因为这些信息只是来自用户当前会话的信息,但如果应用程序崩溃,我应该从崩溃前用户所在的位置开始。
我想到了两种方法来解决我的问题:
1-跟踪变量变化并始终将其保存在 SharedPreferences 中
2-始终保存在 activity saveInstance 中,然后从 savedInstanceBundle
中保留
解决方案 1 的问题是每次更改都会产生开销。解决方案 2 的问题是我需要序列化每个信息。
你们知道解决这个问题的其他方法吗?我只需要在应用程序崩溃时存储并在从崩溃开始后重新加载。就在这两种情况下。
我目前正在使用以下代码来跟踪我的应用程序何时崩溃,因此我可以向用户显示更好的崩溃屏幕,它还允许我将有关崩溃的信息发送到我的服务器以供以后调试。
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
//Get information and save the information
}
});
但作为一个警告,您需要在每个 Activity/您创建的服务中设置它以使其 100% 有效。
我个人有 1 个基础 class 用于我的所有活动,1 个用于我的所有服务,然后那些 class 实现 UncaughtExceptionHandler,这样可以节省大量的 headeche 和代码复制-粘贴。
我创建了一个自定义应用程序 class 来保存我的应用程序的全局信息。
我需要在我的应用程序从崩溃中重新启动后取回这些信息。我不需要将这些信息存储在磁盘中,因为这些信息只是来自用户当前会话的信息,但如果应用程序崩溃,我应该从崩溃前用户所在的位置开始。
我想到了两种方法来解决我的问题: 1-跟踪变量变化并始终将其保存在 SharedPreferences 中 2-始终保存在 activity saveInstance 中,然后从 savedInstanceBundle
中保留解决方案 1 的问题是每次更改都会产生开销。解决方案 2 的问题是我需要序列化每个信息。
你们知道解决这个问题的其他方法吗?我只需要在应用程序崩溃时存储并在从崩溃开始后重新加载。就在这两种情况下。
我目前正在使用以下代码来跟踪我的应用程序何时崩溃,因此我可以向用户显示更好的崩溃屏幕,它还允许我将有关崩溃的信息发送到我的服务器以供以后调试。
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
//Get information and save the information
}
});
但作为一个警告,您需要在每个 Activity/您创建的服务中设置它以使其 100% 有效。
我个人有 1 个基础 class 用于我的所有活动,1 个用于我的所有服务,然后那些 class 实现 UncaughtExceptionHandler,这样可以节省大量的 headeche 和代码复制-粘贴。