0

所以基本上我想要做的是我想要一個服務,在後臺運行並更新LatLong到服務器。即使應用程序正在運行,該操作也需要始終發生。 現在,當應用程序啓動時,我希望服務計算latlong之間的距離,並且除了已經在做的工作之外更新UI,即將latlong更新到服務器。我希望服務爲多項活動做額外的工作。讓我說我啓動應用程序,我在活動A,點擊活動A上的按鈕,服務開始更新用戶界面,當我們點擊獲取它停止更新。現在我在Activity B上,點擊我希望服務除了更新LatLong並更新UI之外還要做一些工作。 什麼是最好的方法來實現這一目標?想要使服務獨立運行

編輯 我面臨的問題是沒有獲得服務更新的UI,但使活動與服務已經開始時溝通。 我可以在啓動服務時傳遞一些數據,但在服務啓動時如何與服務進行通信。如何告訴看到您已經在運行的服務並執行一些操作,現在您必須在先前的操作之上執行一些更多的操作。

我可以在服務中調用一些靜態方法,並在需要執行額外操作時調用它們,但我不想那麼做..我想要更好的方法。

+0

您必須使用IntentService。看看下面的例子。 http://javatechig.com/android/creating-a-background-service-in-android – 2014-09-19 09:54:33

+0

@Nilanchala請看看我的編輯 – 2014-09-19 10:19:15

回答

0

這裏是基本的服務在與ui相同的主線程上運行。當你想讓它連續運行時,你已經在跑步中跑步了。這樣可以避免在應用程序進入後臺或終止時服務被停止。 (請看看Service.START_STICKY國旗,這是你所需要的,因爲我猜)。

隨着服務信息或正在爲此收集的數據更新您的第二個活動問題,您需要查看「如何綁定服務」。 (在活動檢查服務連接和綁定到一個活動,Unbindibg也有看看它也)。活動具有所有需要實現活頁夾的回調。

編輯

服務更新UI必須具有發送和接收意向機制。您可以通過服務檢查進行廣播和意圖檢查您的活動是否正在運行。如果運行廣播意圖並讓接收器處於活動狀態以收聽它。

您也可以通過接口機制來實現

+0

看看我編輯的問題。你能對此有所瞭解嗎? – 2014-09-19 10:21:31

+0

檢查我的編輯ans – Sush 2014-09-19 10:39:38

+0

該服務可以通過intend發送消息給活動,活動可以通過BroadcastIntent來收聽。但是,如何在活動時將消息發送到服務中?就像如果我想要調用當服務已經運行時在服務中改變一些值的方法。我怎麼能做到這一點。? – 2014-09-19 10:48:12