gpt4 book ai didi

android:如何在出错时正确退出应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 08:09:34 24 4
gpt4 key购买 nike

我为未处理的异常添加了一个异常处理程序,以了解该应用程序在下一个应用程序启动时崩溃了:

@Override
public void uncaughtException(Thread thread, Throwable ex) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putString("crashed", "yes");
editor.commit();
}

我通过以下方式添加了处理程序:

Thread.setDefaultUncaughtExceptionHandler(this);

现在的问题是:由于我添加了处理程序,应用程序在出错时的行为有所不同:

  • 在我添加处理程序之前,我收到一个弹出窗口,告诉我应用已崩溃。

  • 现在,在添加处理程序之后,应用程序就卡住了,过了一会儿,android 向我显示了一个弹出窗口,告诉我应用程序不再响应,以及我是否要再等待。这不是好海事组织。任何提示,如何在应用程序崩溃后正确退出?

最佳答案

您可以保存原始的异常处理程序,以便在对未处理的异常执行您自己的自定义操作后可以调用它。像这样:

//Inside UncaughtExceptionHandler.java:

private UncaughtExceptionHandler defaultUEH;

public DefaultExceptionHandler()
{
this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
}

@Override
public void uncaughtException(Thread t, Throwable e)
{
//do anything you wish about the Throwable e :getStackTrace(),getCause(),getClass()...
//call the original uncaught exception handler:
defaultUEH.uncaughtException(t, e);
}

关于android:如何在出错时正确退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com