0

Im面臨這種情況下,在我的聊天應用程序中,我維護服務中的對話和新消息添加到它時,我需要更新列表視圖,即在在活動中的片段。 我試圖更新對話,然後發送在片段中接收到的廣播,它似乎工作,但過了一段時間後,我意識到有時我得到與IllegalStateException異常的崩潰。 我認爲這是一個微不足道的情況,那麼必須有一個標準/通用的方式來處理這個問題。 注意:即時通訊在我的應用程序中使用奧托,如果我嘗試通過它通知用戶界面,它可以工作嗎? 在此先感謝。正確的方式來更新服務中的數據然後notifydatasetchanged在活動

回答

0

由於這是一個聊天,您可能會在案例中保留一些歷史記錄,以向用戶顯示先前/收到的消息。這裏是從頭腦的方式來做到這一點:

  1. 使用數據庫。 DB存儲所有消息等。服務更新DB,發送本地廣播,Loader接收廣播並觸發onContentChanged,加載器從DB加載數據,UI(片段,活動等)從加載器接收新數據。

  2. 使用單件管理器來保存(當然在運行時)消息。一旦收到,服務告訴經理添加新的消息。用戶界面已經訂閱了管理器來聽取更改。經理通知訂戶有關新消息。

我相信還有其他場景和解決方案,取決於你正在嘗試做什麼。

+0

此對話是如此非持久性數據。我認爲這些解決方案是好的,但我的應用程序沒有準備好。我不能用更簡單的解決方案來完成任務嗎? – Informatheus 2014-11-03 14:52:27

相關問題