Это то, что я сделал (df == dialogFragment)
:
Убедитесь, что вы вызываете диалог следующим образом:
df.show(getFragmentManager(), "DialogFragment_FLAG");
Когда вы хотите закрыть диалоговое окно, сделайте эту проверку:
if (df.isResumed()){
df.dismiss();
}
return;
Убедитесь, что у вас есть следующее в методе onResume () вашего фрагмента (не df)
@Override
public void onResume(){
Fragment f = getFragmentManager().findFragmentByTag("DialogFragment_FLAG");
if (f != null) {
DialogFragment df = (DialogFragment) f;
df.dismiss();
}
super.onResume();
}
Таким образом, диалог будет закрыт, если он виден .. еслине видно диалоговое окно будет закрыто после того, как фрагмент станет видимым (onResume) ...