2013-10-28 96 views
1

在我的FragmentActivity中,我正在執行HTTP GET並使用結果更新UI。我使用的是用於顯示可能出現的錯誤一DialogFragment(如服務器不響應等)在onPause後添加片段

的問題是,有時我的應用程序正在報告java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState當我打電話show()在DialogFragment因爲用戶網絡之前暫停活動回報。

我的問題是,如果我忽略show()如果活動沒有恢復,錯誤永遠不會顯示,我怎麼可以添加片段(或FragmentManager中的片段隊列或類似的東西)爲了FragmentDialog如果用戶恢復活動,在那裏?

我應該在活動中提升某種標誌(保存錯誤類型和參數)並在onResume()中顯示片段?或者有一個更簡單的方法?

謝謝

回答

2

解決它的一種方法是將數據與視圖分開。

您可以讓事件(例如到達網絡響應)只更改您的數據對象。

視圖將顯示數據中的任何內容,當它被要求這樣做時。

當視圖可見(不會暫停一次)並且數據發生變化時,只需通知它數據發生變化並要求它更新其顯示內容(不一定詳述變更內容)。