我正在實施一項服務,該服務將在MainActivity啓動時啓動。該服務檢查並維護網絡連接。關於服務,活動和通知之間的交互的建議
,因爲我希望該服務繼續運行,即使該活動是不可用我還沒有綁定服務的活動。該服務將從它所連接的服務器接收消息。
我奮力選擇最佳的邏輯做當服務收到以下消息。
檢查MainActivity當前已打開,並在用戶
前面如果是調用活動的一些方法。如果沒有活動的更新通知是與UI
互動。
我的問題是;
如何正確檢查活動是否從我的服務在UI中運行?我知道我可以綁定服務,但如果活動已關閉,我不想解除綁定。這會是一個問題嗎?
我會以某種方式將消息從服務發送到活動。鑑於上述情況,最好的辦法是什麼?
班,這似乎是一個很好的方法,尤其是你的第二點。但是,似乎我仍然需要引用服務中的活動(以便調用接口方法)。你能否給我一個線索,我將如何獲得一個,以及如何檢查活動是否開放? – Stephen 2013-04-11 12:19:06
@Stephen你的服務和你的Activity都可以通過'Activity.getApplication()'和'Service.getApplication()來訪問你的子類。你輸入結果。然後,你的服務嚮應用程序對象「註冊」(/存儲一個對它自己的引用,然後Application對象提供方法來告訴服務他們在那裏或者去了,我會在'onResume()'中調用這些方法, onPause()'出於安全原因(又名NullPointer避免),然後,您的服務可以訪問您的應用程序的活動活動,同時保證您的活動處於最佳狀態。 – 2013-04-11 12:38:03