如何解决Android:避免由于未处理的错误而导致应用崩溃
|| 在我的Android应用中,我试图将Try Catch
块放置在所有可能的位置。但是,我想避免由于任何未处理的错误而导致应用程序崩溃。我该如何实现?
我已经使用了Thread.setDefaultUncaughtExceptionHandler(handler);
,但这只会帮助我获取崩溃数据,对吗?
解决方法
为什么要这样做?
如果存在可以捕获异常并做有意义的事情的地方,即显示有用的警告,然后以一致且可用的状态继续运行应用程序,则可以。
如果您无法采取任何有意义的措施,那就让故障发生。有很多方法可以通知您所导致的故障,因此可以对其进行修复:例如,查看ACRA。或者,Android Developer控制台现在将报告您的市场分配的应用程序失败。
, 您可以使用以下方式:
public class MyApplication extends Application
{
public void onCreate ()
{
// Setup handler for uncaught exceptions.
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread,Throwable e)
{
handleUncaughtException (thread,e);
}
});
}
// here you can handle all unexpected crashes
public void handleUncaughtException (Thread thread,Throwable e)
{
e.printStackTrace(); // not all Android versions will print the stack trace automatically
Intent intent = new Intent ();
intent.setAction (\"com.mydomain.SEND_LOG\"); // see step 5.
intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); // required when starting from Application
startActivity (intent);
System.exit(1); // kill off the crashed app
}
}
这将处理您的应用程序意外崩溃,这是从该答案中得出的。
, 我建议您在这里阅读有关ACRA的信息
, 所有错误和异常均从Throwable扩展。通过捕获Throwable,可以处理所有意外情况。但是捕获错误将没有结果。您只需要在应用程序崩溃之前在catch块中执行某项操作即可
, 看一看
android中异常处理的最佳实践
谢谢
迪帕克
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。