在我的應用程序的活動,我需要顯示「加載」 uncancelable FragmentDialog而東西上傳。我顯示來自回調該對話框中我目前的活動是這樣的:這是從我的UI分段執行辭退一個DialogFragment(支持庫),而活動的背景變得IllegalStateException異常
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)。上傳完成後,我的ui Fragment會通知onActivityResult,並且當前它會嘗試關閉對話框。過去,它委託負責解除加載對話框的onActivityResult回調,但它不起作用。
而我的活動是在前臺,我可以關閉此對話框,但如果是在後臺,我得到一個IllegalStateException:不能執行onSaveInstaneState後這個動作。我嘗試使用onRemove,這不會讓我的應用程序崩潰,但也不會隱藏DialogFragment。我已經在我的碎片和我的活動上做了兩件事情,但仍然遇到了問題。
我一直在閱讀的文檔,但我不能找到一些方法,我可以使用。
是DialogFragment不應該被使用,正如我需要還是什麼,應該怎麼辦?
但是,然後我的片段對話框應該是我保留的片段(在背景上做這個工作的)的目標,我的對話框將結果傳遞給我的UI片段。我對嗎? – Platonius
您是否只爲顯示等待/加載對話框執行此操作?你爲什麼使用onActivityResult?我對嗎? – garmax1
是的,我喜歡。使用onActivityResult,我從我的工作片段中得到結果,所以我可以知道上傳是否成功。 – Platonius