onWaveInstanceState之后的TabWidget onClick(java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作)

she*_*pya 15 tabs android fragment

我创建了一个片段标签控件下面的片段兼容包样品,我改变片段onTabChanged,但我有一些市场报告,斑点IllegalStateExceptiononSaveInstanceState,这是通过询问承诺片段经理打电话后引起的onSaveInstanceState(),但我怎么能接受performClick后onSaveInstanceStateIS叫什么名字?

堆栈跟踪:

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1314)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1325)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:548)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:532)
at my.app.NewsTab.onTabChanged(NewsTab.java:144)
at android.widget.TabHost.invokeOnTabChangeListener(TabHost.java:378)
at android.widget.TabHost.setCurrentTab(TabHost.java:363)
at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:149)
at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:559)
at android.view.View.performClick(View.java:3122)
at android.view.View$PerformClick.run(View.java:12012)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

看起来这是以某种方式讨论(通过搜索错误),但对我来说,它只是一个副作用,一个支持的错误?我还阅读了有关honey +的不同应用程序生命周期,但在保存实例后执行单击看起来对我来说是无法解决的行为

我应该使用commitAllowingStateLoss()还是 mTabHost.setOnClickListener(null)onSaveInstanceState

不幸的是我无法重现,我只看到关于开发者控制台的罕见报告

活动有 android:configChanges="orientation|screenLayout"

我用"总是完成"测试了生命周期

标签片段切换器在ViewPager中,但我怀疑是否相关

Ale*_*ood -1

问题是您试图在调用's方法FragmentTransaction后提交 a 。由于本博客文章中描述的原因,这是不允许的。ActivityonSaveInstanceState()

  • 我仍在寻找正确的答案,但我可以确认在 onSaveInstanceState 之后很可能获得 onClick。我有一个选项卡活动,托管片段活动,其中一些活动具有在其 onClick/onItemClick 中推送新片段的按钮或列表。如果您按住这些按钮之一,然后点击另一个选项卡,您将在 onSaveInstanceState 之后很好地获得 onClick——1.05 秒后,在我刚刚运行的测试中。 (10认同)