Activity 崩溃生命周期方法 - android
Activity crash lifecycle method - android
我正在开发一个应用程序,在崩溃的情况下,需要在崩溃时保存一些数据。现在,我将数据保存在 onDestroy() 中,如下所示:
@Override
protected void onDestroy() {
saveState();
super.onDestroy();
}
但是每当我故意让我的应用程序崩溃时,都不会调用 onDestroy() 并且不会保存我的数据。
我的问题是,如何在崩溃时保存数据?我应该采取哪种方法?
因为我还需要保存崩溃的时间,所以这是强制性的。
UncaughtExceptionHandler 非常适合捕捉崩溃。
遗憾的是,您无法通过 onDestroy
或 onStop
方法检测突然崩溃。您的选择是:
使用 try-catch 块。将可能崩溃的地方包裹在try块中,在catch块中捕获异常,然后就可以优雅地关闭应用了。
在易受影响的地方实施 try-catch 块。然后,您可以将 crashlytics 集成到您的应用程序中,并将异常记录到 catch 块中的 crashlytics。让应用程序被几个用户彻底使用,然后在 crashlytics 分析中,您可以看到应用程序实际崩溃的地方。
使用acra。它捕获异常,检索大量上下文数据并将它们发送到您选择的后端。
您始终可以在 catch 块中记录系统时间并将您的数据保存在那里。
我正在开发一个应用程序,在崩溃的情况下,需要在崩溃时保存一些数据。现在,我将数据保存在 onDestroy() 中,如下所示:
@Override
protected void onDestroy() {
saveState();
super.onDestroy();
}
但是每当我故意让我的应用程序崩溃时,都不会调用 onDestroy() 并且不会保存我的数据。
我的问题是,如何在崩溃时保存数据?我应该采取哪种方法? 因为我还需要保存崩溃的时间,所以这是强制性的。
UncaughtExceptionHandler 非常适合捕捉崩溃。
遗憾的是,您无法通过 onDestroy
或 onStop
方法检测突然崩溃。您的选择是:
使用 try-catch 块。将可能崩溃的地方包裹在try块中,在catch块中捕获异常,然后就可以优雅地关闭应用了。
在易受影响的地方实施 try-catch 块。然后,您可以将 crashlytics 集成到您的应用程序中,并将异常记录到 catch 块中的 crashlytics。让应用程序被几个用户彻底使用,然后在 crashlytics 分析中,您可以看到应用程序实际崩溃的地方。
使用acra。它捕获异常,检索大量上下文数据并将它们发送到您选择的后端。
您始终可以在 catch 块中记录系统时间并将您的数据保存在那里。