gpt4 book ai didi

android - 使用 DialogFragment 时出现 IllegalStateException

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:55:08 39 4
gpt4 key购买 nike

我刚开始使用 android 支持库中的 DialogFragment,到目前为止发现它非常烦人。我有一些自定义的 AsyncTasks 从我的应用程序的不同地方调用。我有两次遇到 DialogFragments 问题:

  1. 调试时熄屏
  2. 当我想从 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() 中打开对话框,但这并不是我真正想要的为了。有没有更好的解决方案??

谢谢西蒙

最佳答案

使用 dialog.dismissAllowingStateLoss(); 而不是 dialog.dismiss();

关于android - 使用 DialogFragment 时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12116842/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com