Can not perform this action after onSaveInstanceState报错 dialog.show
时间: 2024-02-01 21:02:41 浏览: 27
这个错误通常是由于在 `onSaveInstanceState` 方法后尝试调用 `show()` 方法所引起的。在 `onSaveInstanceState` 方法被调用时,Activity 正在保存其状态,这时候弹出一个对话框可能会导致一些异常情况发生。你可以尝试将弹出对话框的代码移动到 `onCreate` 方法中或者使用 `DialogFragment` 来解决这个问题。`DialogFragment` 可以在屏幕旋转等情况下保持对话框的状态。
例如,你可以这样创建一个 `DialogFragment`:
```java
public class MyDialogFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// 创建并返回对话框视图
return inflater.inflate(R.layout.my_dialog_layout, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// 在此处执行对话框初始化操作
// 例如设置对话框标题、内容、按钮事件等
}
}
```
然后,在需要弹出对话框的地方,你可以这样调用:
```java
MyDialogFragment dialog = new MyDialogFragment();
dialog.show(getSupportFragmentManager(), "my_dialog");
```