首页 > 解决方案 > 显示对话框片段抛出“onSaveInstanceState 后无法执行此操作”异常

问题描述

有时,在某些设备上,由于上​​述非法状态异常,对话框片段会导致活动崩溃

我试过 showow() 仅在某些设备上有所帮助,但问题仍然存在。

val dialog = CustomDialogFragment.newInstance(false, correctAnswer, true)
dialog.show(supportFragmentManager, "alert")

我需要对话框实例以供将来使用,否则我会在 newInstance() 之后立即使用 show。可能的解决方案是什么?

标签: androidandroid-dialogfragment

解决方案


当我发现问题是由 Android 问题引起的时,我有以下解决方法:只需覆盖对话框片段的 show() 方法,如下所示:

 @Override
 public void show(@NonNull FragmentManager manager, @Nullable String tag) {
    FragmentTransaction ft = manager.beginTransaction();
    ft.add(this, tag);
    ft.commitAllowingStateLoss();
 }

推荐阅读