维护一个老的应用,使用DialogFragment作为Dialog进行展示
在测试的时候,连续点击展示Dialog的按钮,会报错
java.lang.IllegalStateException: Fragment already added
查询文章:
[参考文章](踩坑记-Fragment already added - 知乎)
参考文章DialogFragment异常Fragment already added的原因与解决办法 - ganzhijie - 博客园
原因是短时间内连续去show的时候,这个操作是异步执行,短时间内连续添加Fragment,所以报错
最简单的解决方式:
重写自己的DialogFragment的show方法:
@Override
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
if (manager.isDestroyed() || isAdded()) {
return;
}
super.show(manager, tag);
}