1

說我有一個活動A運行到服務器的套接字連接,服務器將繼續發送一些消息,並且A應該處理這些消息並更新UI以顯示它們。套接字連接正在另一個線程上運行。如何在切換到其他活動時保持活動正在運行並更新UI?

上我有一個按鈕,我想按下按鈕,啓動另一項活動B.

的要求是,當用戶進入活動B,活動A應保持與服務器連接更新其UI。當用戶從B返回時,活動A應該顯示最新信息,因爲用戶永遠不會離開。

我做了一些研究,其中一篇帖子提出使用Tabhost Cheat,它將A和B放入一個隱形標籤主機。不過,我檢查標籤主機,切換標籤時,活動將進入onPause狀態,這會斷開該活動中的套接字。

解決方法是解決這個問題嗎?謝謝!

+0

如果您使用多於一個活動,則活動A將始終暫停。如果你從套接字斷開連接,那麼你需要做一些其他的事情,保持在同一個活動中。 – Karakuri

+0

onPause爲什麼會斷開一個套接字?這是你的插座。 Activity實例沒有被銷燬,如果你不想關閉套接字。現在,即使活動A完全卸載,更聰明的實現也會讓套接字生存... –

回答

0

可能值得看看使用intentservice來完成web套接字的工作並使其廣播消息。無論您想要讀取/處理消息的任何活動,您都可以註冊廣播接收器以獲取從intentservice發送的消息,從而確保無論何時(例如,活動A都擁有該消息);■onResume方法稱爲您可以使用最新的消息更新ui廣播接收器或者只是詢問意圖服務以獲得最新的消息。

這裏的好處是,IntentService將在後臺運行而不需要任何活動,你可能還想考慮引入一些東西來減少Web流量的數量,只需要intentservice輪詢數據當它需要被從而顯示減少電池消耗和潛在的成本給用戶使用了數據津貼,特別是如果用戶是在現收現付

如何這可能工作一個很好的簡單的例子可以在這裏找到

http://code.tutsplus.com/tutorials/android-fundamentals-intentservice-basics--mobile-6183

相關問題