onClick事件崩溃:java.lang.IllegalStateException:onSaveInstanceState后无法执行此操作

时间:2015-04-30 14:20:05

标签: android android-fragments android-support-library

背景

我正在处理一个获得崩溃报告但没有意义的应用。

似乎发生的场景(根据stackTrace)是用户点击导航抽屉上的一个项目,该项目又替换了活动的片段容器上显示的当前片段:

...
transaction.setCustomAnimations(R.anim.slide_in_from_left, R.anim.fade_out).replace(R.id.activity_main__fragmentContainer, fragmentToShow).commit(); // <=crash here
...

崩溃报告是:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
   at android.support.v4.app.u.w(FragmentManager.java:1365)
   at android.support.v4.app.u.a(FragmentManager.java:1383)
   at android.support.v4.app.j.a(BackStackRecord.java:636)
   at android.support.v4.app.j.a(BackStackRecord.java:615)

然后是我写过的专栏,以及点击处理(实际上是一个简单的onClickListener)。

问题

在Google上搜索,我发现了许多可能的解决方案,但针对不同的类似问题。

问题

崩溃本身很少见,但我无法找到原因。 这个问题怎么可能存在?

最近的支持库(到22.1.0)的升级是否已经修复了?之前使用的应用程序版本只是它之前的一个版本。

我可以添加一个检查当前活动是否没有被销毁,但它太奇怪......

1 个答案:

答案 0 :(得分:0)

既然你的问题还不完整......我不能说一个确切的解决方案...... 我认为你在完全加载片段之前要求动画... 即,在将布局文件膨胀到容器之前... 尝试在之后调用动画,

view = inflater.inflate(R.layout.fragment,container,false);