Android 我可以拦截应用程序崩溃并在发生崩溃时立即采取措施吗?

Android 我可以拦截应用程序崩溃并在发生崩溃时立即采取措施吗?,android,Android,我希望能够截获我的应用程序中的应用程序崩溃,当一个发生时,我想清除数据库,例如 我可以有一些崩溃的监听器,并有如下方法: onAppCrash() { // Do some really important stuff } 您可以使用Thread.setDefaultUncaughtExceptionHandler捕获所有未处理的异常,这通常是崩溃的原因。 您可以在应用程序的onCreate或任何特定活动中注册此侦听器,具体取决于您将如何解决异常 尽管如此,我建议您多考虑一下这种方法。

我希望能够截获我的应用程序中的应用程序崩溃,当一个发生时,我想清除数据库,例如

我可以有一些崩溃的监听器,并有如下方法:

onAppCrash() {
    // Do some really important stuff
}

您可以使用
Thread.setDefaultUncaughtExceptionHandler
捕获所有未处理的异常,这通常是崩溃的原因。 您可以在应用程序的
onCreate
或任何特定活动中注册此侦听器,具体取决于您将如何解决异常


尽管如此,我建议您多考虑一下这种方法。提高应用程序的质量总是比“捕获”所有可能的异常要好。

全局捕获异常的问题在于确定下一步要做什么。由于异常可能是在应用程序代码的任何地方(或底层框架中)以及任何时候引起的,因此几乎不可能确定应用程序的状态

通常最好将定制的异常处理程序放在可能失败的代码的各个部分周围。通过这样做,您对每次失败的背景有了更多的了解,并且可以根据情况做出反应


例如,您提到关闭数据库。如果在数据库调用周围放置定制的处理程序,您可能会更容易了解如何解决这种情况。您可以始终在数据库代码中添加一个“finally”块,以确保数据库始终处于关闭状态,即使出现异常。

尝试提高质量是必须的,也是默认的理念,我认为不应该在这里提及。车祸确实发生了,我需要做点什么来减轻后果。我肯定你不能给我指出一个不会崩溃的应用:)顺便说一句,你能为那行代码提供一些上下文,比如我把它放在哪里吗?很多人可能在不清楚应该如何使用它的情况下阅读这个答案。所以,不要把它看作是个人的回应:)我会尝试一下,让你知道发生了什么:)