Я создал виджет вкладки фрагмента в соответствии с образцом пакета совместимости фрагментов, я изменил фрагмент в 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, но я сомневаюсь, что это может быть связано