2015-11-05 55 views
1

所以我偶然發現了可怕的Can not perform this action after onSaveInstanceState異常,當我試圖在片段的子片段管理器中放入某些東西時。我如何知道它是否保存以再次訪問Fragment的ChildFragmentManager?

我該如何正確地知道我不應該那樣做?我通過FragmentManager s和Fragment的代碼讀取,並且在片段上調用onSaveInstanceState()後看不到任何翻轉的標誌。

當然,我能做到FragmentTransaction.commitAllowStateLoss()但這是一個骯髒的黑客和有我,當我重寫片段的onSaveInstanceState方法也難看切換一個布爾標誌...

回答

1

我用犯FragmentTransaction是規則:

  • 它的安全做到這一點在onActivityCreated
  • 它的安全做到這一點時,isResumedtrue

您可以在深度文章關於沒有得到異常會發生什麼here.的建議更是:

  • 犯內活動的生命週期方法交易時要小心。
  • 避免在異步回調方法內執行事務。
  • 使用commitAllowingStateLoss()只作爲最後的手段。
+0

檢查暫停狀態似乎是合理的,將嘗試,謝謝! –

相關問題