我有一個android應用程序,可以使用或不使用位置。在一個活動中處理這種情況很簡單:我設置了一個位置監聽器,並等待一個進度對話框,但允許用戶中止等待(這恰好如果位置提供程序被禁用,沒有特殊的錯誤就是從不返回的位置...很好)。android:處理可選位置
但是,我也有一個服務,需要的位置。該服務可能在活動之前運行,所以我不能依賴活動來獲取位置(或不)。
問題是如何在服務中處理這種情況。我可以等待位置,但由於我不能依賴用戶中止,我如何知道什麼時候停止等待,並且假定沒有位置可用?看來我可以做這樣的事情,
- 時間表服務與行動「得到位置」,其中規定位置監聽,等待更新,進度相同的服務說用行動3分鐘後「刷新」
- 在服務行動「刷新」,獲取最後一個已知的位置,並對此感到滿意。它是要麼沒有得到。如果它是空的,我們知道我們沒有位置,我們盡力而爲。
好像這會工作,但它變得複雜,因爲我已經不能用簡單的目的服務(我認爲),因爲如果意圖服務onHandleIntent(),然後在位置改變事件後停止本身將不會被收到。
無論如何,這是越來越有點複雜,所以我想知道如果有一個更簡單的方法。
有關更多詳細信息,請訪問http://code.google.com/p/quakealert。 – 2010-12-24 20:38:53