2013-10-11 32 views
2

你好我得到以下例外,當我從我的活動的onNewIntent方法進行片段popBackStack。我能不能執行片段popBackStack清晰我的孩子片段

下面是我的應用程序崩潰日誌。

10-11 16:08:49.750: E/AndroidRuntime(13831): FATAL EXCEPTION: main 
10-11 16:08:49.750: E/AndroidRuntime(13831): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.support.v4.app.FragmentManagerImpl.popBackStack(FragmentManager.java:466) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.xxx.view.DataSend.sendToBackFragment(DataSend.java:850) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.xxx.view.MyOneFragmentHolder.clearFragmentBackStack(MyOneFragmentHolder.java:117) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.xxx.view.MyOneFragmentHolder.clearBackStack(MyOneFragmentHolder.java:131) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.xxx.view.CustomTabsActivity.onNewIntent(CustomTabsActivity.java:1537) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1119) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:1726) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread.performNewIntents(ActivityThread.java:1738) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread.handleNewIntent(ActivityThread.java:1746) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread.access$2300(ActivityThread.java:117) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:982) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.os.Looper.loop(Looper.java:130) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at android.app.ActivityThread.main(ActivityThread.java:3687) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at java.lang.reflect.Method.invokeNative(Native Method) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at java.lang.reflect.Method.invoke(Method.java:507) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
10-11 16:08:49.750: E/AndroidRuntime(13831): at dalvik.system.NativeStart.main(Native Method) 

現在這裏是我的FragmentActivity中的片段層次結構。

  1. 我FragmentActivity包含一個ViewPager
  2. 現在我ViewPager包含五個片段。
  3. 在這五個片段的第二個片段中,第三個片段通過下面的邏輯包含了嵌套片段。
    1. 我有那麼的FrameLayout在執行我的真實片段,當用戶做單擊該片段的列表項將再次在這個FrameLayout里加載片段負荷簡單片段。

所以我的活動onNewIntent執行popBackStack我ViewPager第二個片段,其工作作爲容器。

+0

我也嘗試commitAllowingStateLoss這一點,但它創造commit方法所發生的死機一樣。 – Herry

回答

0

那麼首先我經歷了大量的問題,當我在另一個片段內使用片段(通常不是一個好習慣) 閱讀這個answer它可能會幫助你。 此外堆棧跟蹤說你嘗試saveInstanceState方法被調用後彈回堆棧,你沒有提供任何代碼,但我認爲你不能使用它之後程式儲存的情況下,最有可能停止/被破壞

乾杯 的Mac