当尝试在 Activity 转到后台后显示对话框时,我收到 java.lang.IllegalStateException: Can not Perform this action after onSaveInstanceState
,我需要向用户显示此消息,是有任何方法可以在 Activity 恢复时显示对话框。我的代码是这样的:
public class MyTask extends AsyncTask<String,String,String>{
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
@Override
protected void onPreExecute() {
progressDialog.setMessage(getString(R.string.dialog_progress_message));
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
// HTTP POST user action
// App goes to background (user press home button i.e.)
// Getting message from server
return message;
}
@Override
protected void onPostExecute(String message) {
progressDialog.dismiss();
DialogAlert dialogAlert = DialogAlert.newInstance(message);
dialogAlert.setCancelable(false);
//App crash here
dialogAlert.show(getSupportFragmentManager(), TAG);
}
}
我尝试过使用AsyncTaskLoader
,但是当 Activity 恢复时该对话框不会显示。任何想法。
最佳答案
尝试使用下面的代码 fragment ,
替换
dialogAlert.show(getSupportFragmentManager(), TAG);
与
getSupportFragmentManager().beginTransaction().add(dialogAlert, "tag")
.commitAllowingStateLoss();
关于java - 当 Activity 处于后台时,在 AsyncTask.onPostExecute 上显示 DialogFragment;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31109428/