我剛剛開始使用Android支持庫中的DialogFragment,並發現它非常討厭到目前爲止。我有一些自定義的AsyncTasks,從我的應用程序的不同地方調用。出現以下兩種情況,當我遇到問題與DialogFragments:IllegalStateException當使用DialogFragment
- 調試時,屏幕關閉
- 當我想打開從onActivityResult一個FragmentDialog()
兩個,至少我想,是相當普遍的情況,在上述兩種情況下,我得到一個
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
這是我AsyncTasks的結構如何:
private class UploadImageAsyncTask extends AsyncTask<Void, Void, Image> {
private ProgressDialogFragment dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
FragmentManager fm = getSupportFragmentManager();
dialog = new ProgressDialogFragment();
dialog.show(fm, "ProgressDialogFragment");
}
@Override
protected Image doInBackground(Void... params) {
...
}
@Override
protected void onPostExecute(Image result) {
super.onPostExecute(result);
dialog.dismiss();
...
}
}
}
我知道我可以設置防止屏幕從去調試時,我可以在onActivityResult設置一個標記(),然後打開在onStart()對話框睡覺的設置,但這並不是真正的我正在尋找。有沒有更好的解決方案?
感謝 西蒙
這是我在Android開發中遇到的最惱人的問題之一。棄用的對話框API沒有這個問題。所有的解決方法都非常難看。我仍然無法找到一個乾淨的解決方案來解決這個問題。 –
我也沒有。我仍在等待有人向我展示一個乾淨的解決方案: - \ – SimonSays