TabWidget onClick после onSaveInstanceState (java.lang.IllegalStateException :Невозможно выполнить это действие после onSaveInstanceState)

Я создал виджет вкладки фрагмента в соответствии с образцом пакета совместимости фрагментов, я изменил фрагмент в onTabChanged, но у меня есть некоторые рыночные отчеты, в которых IllegalStateExceptionуказывается после onSaveInstanceState, это вызвано запросом фиксации в диспетчере фрагментов после вызова onSaveInstanceState(), но как я могу получить PerformClick после вызова onSaveInstanceState?

трассировка стека:

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)

похоже это как-то обсуждалось (поиском ошибки ), но для меня это только побочный эффект, баг в поддержке? Я также читал о другом жизненном цикле приложения для Honeycomb+, но выполнение клика после сохранения экземпляра кажется мне нереальным поведением

. я должен использовать commitAllowingStateLoss()или mTabHost.setOnClickListener(null)в onSaveInstanceState?

к сожалению, я не могу воспроизвести, я вижу только редкие отчеты в консоли разработчика

активность имеетandroid:configChanges="orientation|screenLayout"

Я протестировал жизненный цикл также с «всегда заканчивать»

. переключатель фрагментов вкладок находится внутри ViewPager, но я сомневаюсь, что это может быть связано

15
задан sherpya 20 August 2012 в 12:48
поделиться