Sve*_*ver 64 android android-fragments android-dialog android-dialogfragment
我开始使用DialogFragment,因为他们通过方向更改和其他东西很好地工作.但是我遇到了令人讨厌的问题.
我有AsyncTask显示进度DialogFragment并解散它onPostExecute.一切正常,除非在onPostExecute应用程序处于后台时发生(例如,在按下Home按钮后).然后我在DialogFragment解雇时得到了这个错误 - " Can not perform this action after onSaveInstanceState".卫生署.常规对话框工作得很好.但不是FragmentDialog.
所以我想知道,在应用程序处于后台时,解雇DialogFragment的正确方法是什么?我没有真正使用Fragments,所以我认为我只是遗漏了一些东西.
Jia*_* Qi 139
DialogFragment 有一个叫做的方法 dismissAllowingStateLoss()
小智 10
这就是我做的(df == dialogFragment):
确保以这种方式调用对话框:
df.show(getFragmentManager(), "DialogFragment_FLAG");
Run Code Online (Sandbox Code Playgroud)
当您要解除对话框时,请进行以下检查:
if (df.isResumed()){
df.dismiss();
}
return;
Run Code Online (Sandbox Code Playgroud)
确保片段的onResume()方法中包含以下内容(而不是df)
@Override
public void onResume(){
Fragment f = getFragmentManager().findFragmentByTag("DialogFragment_FLAG");
if (f != null) {
DialogFragment df = (DialogFragment) f;
df.dismiss();
}
super.onResume();
}
Run Code Online (Sandbox Code Playgroud)
这样,如果对话框可见,则对话框将被解除..如果不可见则对话框将被删除,然后片段变为可见(onResume)...
| 归档时间: |
|
| 查看次数: |
20022 次 |
| 最近记录: |