Activity 崩溃生命周期方法 - android

Activity crash lifecycle method - android

我正在开发一个应用程序,在崩溃的情况下,需要在崩溃时保存一些数据。现在,我将数据保存在 onDestroy() 中,如下所示:

@Override
protected void onDestroy() {
    saveState();
    super.onDestroy();
}

但是每当我故意让我的应用程序崩溃时,都不会调用 onDestroy() 并且不会保存我的数据。

我的问题是,如何在崩溃时保存数据?我应该采取哪种方法? 因为我还需要保存崩溃的时间,所以这是强制性的。

UncaughtExceptionHandler 非常适合捕捉崩溃。

遗憾的是,您无法通过 onDestroyonStop 方法检测突然崩溃。您的选择是:

  1. 使用 try-catch 块。将可能崩溃的地方包裹在try块中,在catch块中捕获异常,然后就可以优雅地关闭应用了。

  2. 在易受影响的地方实施 try-catch 块。然后,您可以将 crashlytics 集成到您的应用程序中,并将异常记录到 catch 块中的 crashlytics。让应用程序被几个用户彻底使用,然后在 crashlytics 分析中,您可以看到应用程序实际崩溃的地方。

  3. 使用acra。它捕获异常,检索大量上下文数据并将它们发送到您选择的后端。

您始终可以在 catch 块中记录系统时间并将您的数据保存在那里。