В действии моего приложения мне нужно показать не загружаемый FragmentDialog «Загрузка», пока что-то загружается.Я показываю это диалоговое окно из обратного вызова в моей текущей деятельности, например:
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
final Fragment prev = fm.findFragmentByTag( "loading" );
if ( prev != null ) {
ft.remove(prev);
}
ft.addToBackStack(null);
final DialogFragment df =
IndeterminateProgressDialogFragment.newInstance(
getString( R.string.loading_dialog_sending_data ) );
df.setCancelable( false );
df.show( ft, "loading" );
Загрузка происходит в сохраненном фрагменте (с использованием asynctask), который выполняется из моего фрагмента пользовательского интерфейса.Когда загрузка завершена, мой пользовательский фрагмент информируется о onActivityResult, и в настоящее время он пытается закрыть диалоговое окно.В прошлом он делегировал ответственность за закрытие диалогового окна загрузки с помощью обратного вызова, выполненного на onActivityResult, но он тоже не работает.
Я могу закрыть это диалоговое окно, когда моя деятельность находится на переднем плане, но когда он находится в фоновом режимеЯ получаю IllegalStateException: не могу выполнить это действие после onSaveInstaneState.Я попытался использовать onRemove, и это не приводит к сбою приложения, но также не скрывает DialogFragment.Я сделал обе вещи в своем фрагменте пользовательского интерфейса и в своей деятельности, но проблема все еще остается.
Я читал документы, но не могу найти какой-либо метод, который можно использовать.
Разве DialogFragment не должен использоваться так, как мне нужно, или что мне делать?