如果我的应用程序遇到不可恢复的错误,Android 上停止我的应用程序的常用方法是什么。
finish() 不会这样做,因为它不会停止任何正在运行的服务或线程。此外,我想通知用户发生了什么,并请他发送错误日志。
据我用谷歌搜索,似乎没有办法关闭我的应用程序并打开一个特殊的崩溃报告活动或其他东西来向用户显示正在发生的事情或发送崩溃日志。
我认为你应该抛出未处理的运行时异常。在这种情况下,android 会杀死你所有的进程。另外我建议您使用ACRA。该库将帮助您获取崩溃报告(通过电子邮件、谷歌文档等),它可以向用户显示可自定义的错误对话框。
你应该检查一下。这可能是您的解决方案。 阿克拉
查看基本设置指南以开始使用该库。ACRA - 基本设置
虽然 ACRA 是一个不错的解决方案,但如果您想实现自己的未处理异常日志记录,请尝试Thread.setDefaultUncaughtExceptionHandler()。这样,您可以获得任何被抛出但未被捕获的异常,并以您喜欢的方式记录它们。您需要实现Thread.UncaughtExceptionHandler并将其传递给该方法。
使用 Activity,它在 onCreate() 中看起来像这样:
getMainLooper().getThread().setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());