主要是异步操作 show, 之后直接dismiss 出现的错误
错误如下:
异常捕获方法处理:
@Override
public void onActivityCreated(Bundle arg0) {
if (getDialog() == null) { // Returns mDialog
Log.e("onActivityCreated", "为空出现了");
setShowsDialog(false);
} else {
Log.e("onActivityCreated", "不为空");
}
try {
super.onActivityCreated(arg0);
} catch (Exception e) {
// TODO 异常处理
Log.e("onActivityCreated", "空的处理" + e);
} finally
{
Log.e("onActivityCreated", "最终的处理");
}
}
原因是在子线程中dismiss造成的,解决方法就是把dismiss 放到主线程就可以了
例如:
RxJava 中 .doOnTerminate(Utils::dismissProgressDialog) 是在子线程中
等待切回主线程之后在dismiss即可