我需要創建一項活動,以啓動監視用戶位置的服務,並在特定區域內允許調用Activity更新其視圖以通知用戶。需要獲得服務才能與活動交談
由於有幾種不同的方式來處理服務,我有點困惑,這些方法對我的情況來說是正確的。
使用startService()
和stopService()
方法:根據我的理解,我不能直接回復開始的活動。在google文檔中,有一個example顯示如何通過PendingIntent將BroadcastReceiver傳遞給服務並調用它,但我不認爲這允許我更新正在運行的活動的視圖...或者它會如何?
綁定的服務:從文檔似乎這將允許服務和活動之間的雙向通信,但也有人提到,綁定服務,不要在後臺運行indefinitely。現在我不需要甚至不希望服務無限期地運行,但是在最壞的情況下,我可能需要它在bg中運行至少一兩個小時而不會被殺死。
三(可能沒有那麼大)選項:在活動線程,這將使實時視圖更新容易,然後在的onPause事件運行位置服務,停止活動的位置服務,通過startService()
將它傳遞給服務,並使用通知服務在用戶輸入定義的區域時提醒用戶。
任何意見將不勝感激。
this說
,如果你希望服務的結果發送回,然後啓動該服務能夠創建一個廣播一的PendingIntent(與getBroadcast()),並將其交付給客戶啓動服務的Intent中的服務。該服務然後可以使用廣播來傳送結果。
和this說
同時它還有另一個應用程序組件並沒有在後臺無限期地運行下去一個綁定的服務通常只生活。
這聽起來像你可能想[使用信使綁定的服務(http://developer.android.com/guide/topics/fundamentals/bound-services.html嘗試#Messenger) – keno 2011-06-16 03:36:49