当继承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();
}
}
本文介绍了一种在使用DialogFragment时遇到的闪退问题及解决方案。当快速弹出和消失对话框时,由于资源管理不当,会导致应用崩溃。文章提供了一个通过重写show方法并添加remove事务来避免重复add操作的技巧。
8842

被折叠的 条评论
为什么被折叠?



