活动崩溃生命周期方法 - 安卓

8

我正在开发一款应用程序,当它崩溃时,需要保存一些数据以及崩溃的时间。现在,我在onDestroy()中这样保存数据:

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

但是,每当我故意让我的应用程序崩溃时,onDestroy() 方法不会被调用,我的数据也没有保存。我的问题是,如何在应用程序崩溃时保存我的数据?我应该采取哪种方法?因为需要保存崩溃发生的时间,所以这是必须的。

请参考以下网址中的答案:https://dev59.com/IWoy5IYBdhLWcg3wfeIR#8516056 - Sathish Kumar J
2个回答

11

我在我的代码中实现了这个处理程序,它运转地很棒!谢谢。 - David Lasry

2

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

  1. 使用try-catch块。将可能发生崩溃的位置放入try块中,并在catch块中捕获异常,然后您可以优雅地关闭应用程序。

  2. 在易受攻击的地方实施try-catch块。然后,您可以将crashlytics集成到您的应用程序中,并在catch块中将异常记录到crashlytics中。让几个用户充分使用该应用程序,然后在crashlytics分析中,您可以看到应用程序实际上大多数情况下崩溃的位置。

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

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


谢谢您的回复!我会尝试实现这个并更新我的帖子。 - David Lasry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接