2017-07-31 59 views
0

在我的應用程序的情況下,我想保持Started Service在我的應用程序的生命。在這種服務,我必須使用FusedLocationProviderClientLocationServices api請求位置更新(準確地說,在onStartCommand方法)。每當新的「位置更新」收到更新的位置將被保存到PreferenceManagerAndroid的入門服務,處理線程與位置服務API

當用戶註銷從應用程序,我會停止這個Started Service

我是否需要在新的HandlerThread(因爲啓動服務在主線程上運行)處理此位置更新邏輯?

從我的觀點,因爲FusedLocationProviderClient.requestLocationUpdates(從LocationServices API)的方法是非阻塞的通話和基於異步編程模型,我認爲HandlerThread不會在我的方案是必要的。

P.S.我參考了GoogleSample。在這個例子中,他們演示了綁定服務也開始了(不會在客戶端綁定時結束)。他們也沒有實現HandlerThread的實際邏輯來獲取位置更新。

+0

否則在這種情況下需要'HandlerThread' - 假設您只是將更新保存在本地存儲中 – pskink

回答

2

這要看你做什麼,當「新位置」事件觸發。

你做繁重的處理或網絡電話? - >單獨的線程。你做簡單的東西,只需要幾個毫秒? - >這些線程在哪個線程上運行並不重要。

+0

我只在「新位置」事件觸發時將位置信息保存在PreferenceManager中。 –

+0

@ Steve.NayLinAung這是相當輕的重量。不值得爲 –

+0

設置處理程序謝謝,答案是肯定的。 –