Con énfasis reciente de Android en el uso de DialogFragment contenedor que wil no tenga que llamar a despedir en cada
Desde los diálogos tendrán un recipiente Fragmento puede simplemente utilizar su ciclo de vida . Considere esto DialogFragment:
public class FragDialog extends DialogFragment{
public ProgressDialog _dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
//this.dismiss(); <-- The dialogs may be dismissed here
}
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
_dialog = new ProgressDialog(getActivity());
return _dialog;
}
@Override
public void onPause() {
super.onPause();
// <--------- You may overload onPause
}
}
¿Qué va a mostrar en su actividad utilizando un fragmentmanager normalmente llamando así:
FragmentManager fm = getSupportFragmentManager();
FragDialog fragDialog = new FragDialog();
fragDialog.show(fm, "my_tag");
Tenga en cuenta que en realidad se puede alterar lo que hace el DialogFragment en onPause. Cuando su actividad llame a Pausa, se llamará también a esta Pausa.
Descartar el diálogo en onPause() utilizando this.dismiss() no hará el trabajo porque una vez que la actividad se reanude también reanudará el diálogo. (Creo que esto se debe a que savestate se almacena antes de onPause).
Pero puede cerrar los diálogos de forma segura en onCreate si detecta un estado de instancia guardado (un currículum) como se muestra en el código.
He actualizado la respuesta – quinestor