异常 java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作

Posted

技术标签:

【中文标题】异常 java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作【英文标题】:Exception java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 【发布时间】:2018-01-30 05:32:44 【问题描述】:

android.support.v4.app.FragmentManagerImpl.checkStateLoss (片段管理器.java:1842) android.support.v4.app.FragmentManagerImpl.enqueueAction (片段管理器.java:1860) android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java:650) android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:609) > com.bharat.example.adapter.Articles_Adapter$MyViewHolder.onClick (Articles_Adapter.java:147)

android.view.View.performClick (View.java:5201) android.view.View$PerformClick.run (View.java:21163) android.os.Handler.handleCallback (Handler.java:746) android.os.Handler.dispatchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:148) android.app.ActivityThread.main (ActivityThread.java:5443) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:728) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:618)

在 FragmentTransaction commit() 时发生崩溃。

FragmentTransaction transaction = ((Content_Activity) main).getSupportFragmentManager().beginTransaction();
                transaction.setCustomAnimations(R.anim.left_in, R.anim.left_out, R.anim.right_in, R.anim.right_out);
                transaction.replace(R.id.fragment_frame, fragment, "web");
                transaction.addToBackStack("home");
                transaction.commit();

使用 android.support.v4.app.FragmentTransaction

【问题讨论】:

【参考方案1】:

添加这一行。它对我来说很好。

transaction.commitAllowingStateLoss()

【讨论】:

这是可行的,因为导致此错误的常见问题是在某种程度上您对片段管理不善,并且在您调用onSaveInstanceState(outState) 之后,FragmentManager 正在调用片段的commit() 方法。确保不保存片段的最终状态

以上是关于异常 java.lang.IllegalStateException:onSaveInstanceState 后无法执行此操作的主要内容,如果未能解决你的问题,请参考以下文章

Oracle异常分类小记

Java异常如何解决

Kotlin 协程协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )

Kotlin 协程协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )

异常--异常体系异常的处理异常的捕获finally语句块和自定义异常

Java❤️认识异常异常的基本使用认识异常(异常详解)❤️