继承DialogFragment实现Dialog闪退异常:java.lang.IllegalStateException: Fragment already added: ToastDialog
当继承DialogFragment实现自定义样式的Dialog时,在快速弹框和消失的时候,就会出现闪退,报如下异常:
查看代码逻辑知道:为了不让每次使用都创建或销毁浪费资源,在创建的时候代码做的相应的判断,创建后这直接使用,才导致的问题
通过重写DialogFragment的show方法解决->
@Override
public void show(FragmentManager manager, String tag) {
try {
//在每个add事务前增加一个remove事务,防止连续的add
manager.beginTransaction().remove(this).commit();
super.show(manager, tag);
} catch (Exception e) {
//同一实例使用不同的tag会异常,这里捕获一下
e.printStackTrace();
}
}