android DialogFragment 出现 Can not perform this action after onSaveInstanceState
在使用 android 的 DialogFragment 的时候如果实在 Activity 在后台的时候调用 dismiss 函数的时候会出现 Can not perform this action after onSaveInstanceState 的异常,这个异常跟 activity 状态被保存之后又尝试提交一个 FragmentTransaction,原因是因为 DialogFragment 在调用 dismiss 函数的时候需要提交一个 FragmentTransaction 事务,但是在 onSaveInstanceState () 函数调用之后,提交事务就会导致状态丢失,这样就会出现异常。不同的系统显示异常的方式不同
admin 已回答的问题 24 9 月, 2023
为了避免这个问题就是在 Activity 在后台时或者 onSaveInstanceState () 和 onStop () 方法被调用后,就不直接调用 dismiss 函数改调用 dismissAllowingStateLoss。还有一种方式是把这个 DialogFragment 状态记录下,在 Activity 启动 的时候在调用 dismiss 函数。
admin 已回答的问题 24 9 月, 2023
阅读全文