我遇到了可怕的java.lang.IllegalStateException
,在onSaveInstanceState
异常之后无法执行此操作。
我正在尝试将顶部片段弹出后栈。我认为在活动恢复后可以安全地执行此操作,但是以下堆栈跟踪(已编辑)显示了其他情况:
android.support.v4.app.FragmentManagerImpl.checkStateLoss (Unknown Source)
android.support.v4.app.FragmentManagerImpl.popBackStack (Unknown Source)
x.MainActivity$2$1.apply (Unknown Source)
x.MainActivity.onResume (Unknown Source)
android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1249)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755)
所以,我的问题是,什么时候可以安全地从栈顶弹出最上面的片段?如何检测到它是安全的?
答案 0 :(得分:0)
唯一可以安全调用的时间是在onPostResume之后。
您可以使用标志在onPause之后和onPostResume之前跳过对它的调用,也可以保留在onPostResume中执行的操作队列。