android - 捕获到全局异常时 UI 被阻塞
问题描述
在我的应用程序中,我尝试使用Thread.UncaughtExceptionHandler
.
当我的应用程序发现任何未捕获的异常时,我会尝试在 Application 类和片段中全局捕获它。
我的应用程序在一个活动上有很多片段。如果它在任何片段中崩溃,我希望应用程序删除该片段,它应该显示前一个片段并且它可以按需要工作。但是UI(主线程)被阻塞了。如果我尝试访问主线程中的任何内容,它会显示一个对话框,显示“应用程序没有响应”
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println(TAG + "The Uncaught exception is-----------------------------------------------------------------------------");
e.printStackTrace();
if (activityContext != null){
removeTopfragment(); //removes the top most fragment
}
}
private void removeTopfragment() {
System.out.println("inside removeTopfragment");
FragmentManager manger = activityContext.getSupportFragmentManager();
FragmentTransaction ft = manger.beginTransaction();
List<Fragment> list = manger.getFragments();
//get last one
if(list.size() > 0) {
System.out.println("inside list.size() ");
Fragment topFragment = list.get(list.size() - 1);
ft.remove(topFragment);
ft.commitAllowingStateLoss();
}
}
我不想杀死/重新启动应用程序。请帮忙
解决方案
推荐阅读
- xamarin.forms - 在视图中添加后如何刷新 RecycleView 中的 itemview 内的内容
- javascript - 删除 webpack-dev-sever 1.14.1 并安装 1.14.0
- html - 如何在目标 JSP 页面上显示 html 表
- javascript - 网格中的可见值行
- ruby - 返回布尔值而不是值,重新创建 .select 方法
- c# - 我不能同时用操纵杆移动和射击
- kendo-ui - 剑道树视图和树下拉列表 - 当前选择和同步更改
- java - 如何从我的域中检索所有邮件收件箱内容
- codeigniter - 提交后选择的下拉菜单总是改变
- android - 如何用 Fragment Scenario 测试 Fragment?