【问题标题】:IllegalStateException - no references to my code in stacktraceIllegalStateException - 在堆栈跟踪中没有引用我的代码
【发布时间】:2014-03-07 09:20:04
【问题描述】:

此堆栈跟踪已提交到我的项目问题跟踪器。 由于您没有引用我的代码,所以有人知道如何修复它吗? 我正在使用支持库 v19.0.1,如果需要,我可以提供有关设备/平台的更多详细信息


java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
        at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1343)
        at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:486)
        at android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:179)
        at android.support.v7.app.ActionBarActivity.onBackPressed(ActionBarActivity.java:250)
        at android.app.Activity.onKeyUp(Activity.java:2099)
        at android.view.KeyEvent.dispatch(KeyEvent.java:2575)
        at android.app.Activity.dispatchKeyEvent(Activity.java:2329)
        at android.support.v7.ActionBarActivityDelegateICS$WindowCallbackWrapper.dispatchKeyEvent(ActionBarActivityDelegateICS.java:250)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1806)
        at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3344)
        at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3317)
        at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2464)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4424)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
        at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 这是设备/模拟器的API级别
  • 它是 API 级别 15 的真实设备。我没有使用 Fragments,我什至没有在我的项目中的任何地方调用 onSaveInstanceState

标签: android illegalstateexception android-appcompat


【解决方案1】:

我做的第一个改变是

 getSupportFragmentManager().beginTransaction()
.add(R.id.container,new CatListFragment(null)).commitAllowingStateLoss();

第二个变化是拦截活动的onPause onStop和onResume,如果应用程序处于暂停状态(或任何其他方式),则维护一个标志。意图不是在暂停状态下调用 .commit() 或 .commitAllowingStateLoss()。应用程序恢复后,您可以调用 FragmentManager 提交。为我工作:)

【讨论】:

  • 即使我不使用片段?
猜你喜欢
  • 2011-03-31
  • 2011-08-07
  • 1970-01-01
  • 2019-06-23
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
相关资源
最近更新 更多