有没有代码示例,或者有关如何使用Thread.setDefaultUncaughtExceptionHandler方法的教程? 基本上我试图显示一个自定义提醒对话框,每当引发exception,在我的应用程序。 是否有可能做到这一点? 我知道如果在UI线程中抛出exception,在屏幕上显示某些内容会有点棘手,但是我不知道有什么解决办法。
一个解决scheme来到这个页面的人的基本示例:)
public class ChildActivity extends BaseActivity { @SuppressWarnings("unused") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int a=1/0; } }
类处理错误:
public class BaseActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread paramThread, Throwable paramThrowable) { Log.e("Alert","Lets See if it Works !!!"); } }); } }
下面是Mohit Sharma的一个变体, 它有以下改进:
码:
public class BaseActivity extends Activity { @Override public void onCreate() { super.onCreate(); final Thread.UncaughtExceptionHandler oldHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException( Thread paramThread, Throwable paramThrowable ) { //Do your own error handling here if (oldHandler != null) oldHandler.uncaughtException( paramThread, paramThrowable ); //Delegates to Android's error handling else System.exit(2); //Prevents the service/app from freezing } }); } }
请记住,在设置处理程序之前检查The RuntimePermission("setDefaultUncaughtExceptionHandler")
,并确保通过抛出一个未捕获的exception,导致进程暂停,因为事情可能处于不确定状态。
不要显示任何东西,事实上UI线程可能是崩溃的,写日志和/或发送细节到服务器,而不是。 你可能想看看这个问题及其答案 。
以上就是android开发分享在android上使用全局exception处理相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/513609.html