[转] DialogFragment Fragment already added

阅读更多
原文地址: http://blog.csdn.net/u012987382/article/details/46984053

现象
异步调用两个接口,公用一个加载进度框(DialogFragment),前一个加载框未dismiss,后一个已经开始 show。就会以出现 “Fragment already added” 运行时异常。

解决方法
在显示 Fragment 之前,判断之前的 Fragment 是否处于显示状态。
if(!mDialogFragment.isAdded() 
    && !mDialogFragment.isVisible()
    && !mDialogFragment.isRemoving()) {
    mDialogFragment.show(getFragmentManager().beginTransaction(),"normal_custom_progress_dialog");
}

说明
public final boolean isAdded()
如果该 Fragment 对象被添加到了它的 Activity 中,那么它返回 true,否则返回 false。

public final boolean isRemoving()
如果当前的 Fragment 对象正在从它的 Activity 中被删除,那么就返回 true。这个删除过程不是该 Fragment 对象的 Activity 的结束过程,而是把 Fragment 对象从它所在的 Activity 中删除的过程。

public final boolean isVisible()
如果该 Fragment 对象对用户可见,那么就返回 true。

你可能感兴趣的:(Android,Fragment,DialogFragment)