Поскольку в последнее время Android делает упор на использование контейнера DialogFragment, вам не понадобится призывать увольнять по каждому
Поскольку в диалоговых окнах есть контейнер фрагментов, вы можете просто использовать их жизненный цикл. Рассмотрим этот 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
}
}
Что вы будете показывать в своей деятельности, используя диспетчер фрагментов, обычно называя это так:
FragmentManager fm = getSupportFragmentManager();
FragDialog fragDialog = new FragDialog();
fragDialog.show(fm, "my_tag");
Обратите внимание, что вы можете изменить то, что DialogFragment делает в onPause. Когда ваше действие вызывает onPause, этот onPause также будет вызываться.
Отказ от диалога в onPause () с помощью this.dismiss () не будет работать, потому что после возобновления действия он также возобновит диалог. (Я думаю, это потому, что сохранение сохраняется до onPause).
Но вы можете безопасно закрыть диалоговые окна в onCreate, если вы обнаружите сохраненное состояние экземпляра (резюме), как показано в коде.
person
quinestor
schedule
19.10.2012