我剛剛完成了Android上的地理圍欄教程(http://developer.android.com/training/location/geofencing.html),我想知道爲什麼地理圍欄的「回調」是通過待定目標完成的,而不是簡單的回調界面。Android - 爲什麼要使用待定目標進行地理圍欄
如果在活動中實施,通常會斷開onPause()
中的位置客戶端,因此之前添加的地理圍欄將在應用程序暫停/銷燬後無法跟蹤,那麼爲什麼還有待處理的意圖?還是我誤解了?
我剛剛完成了Android上的地理圍欄教程(http://developer.android.com/training/location/geofencing.html),我想知道爲什麼地理圍欄的「回調」是通過待定目標完成的,而不是簡單的回調界面。Android - 爲什麼要使用待定目標進行地理圍欄
如果在活動中實施,通常會斷開onPause()
中的位置客戶端,因此之前添加的地理圍欄將在應用程序暫停/銷燬後無法跟蹤,那麼爲什麼還有待處理的意圖?還是我誤解了?
我想知道爲什麼地理圍欄的「回調」是通過掛起的意圖完成的,而不是一個簡單的回調接口。
主要是因爲geofences被設計爲即使沒有運行應用程序也能正常工作。
如果在活動中實現,一個通常會在斷開了的onPause位置客戶端()無論如何,所以以前添加地理圍欄不會跟蹤任何程序暫停/被破壞後,爲什麼掛起的意圖是什麼?還是我誤解了?
我相信你是錯在這裏。事實上,地理圍欄專門並非設計用於直接觸發用戶界面,如the documentation討論:
從位置服務發送的信息可在您的應用程序觸發各種動作的意圖,但你不應該有它開始一個活動或片段,因爲組件只能響應用戶操作而變得可見。
現在,您可能會選擇說您只想在前臺使用地理圍欄時使用地理圍欄。但是,您必須刪除onPause()
中的這些地理柵欄。地理圍欄將保持登記狀態直到其到期時間或手動刪除,AFAICT。
這個答案可能會過時 - 谷歌的發揮服務的準確性和realiability有了很大的變化,從它的初始版本。
我的一些下面地理圍欄經驗。首先 - 這項技術的主要優勢是電池使用率非常低。事實上,我無法注意到電池壽命的任何變化。這真的令人印象深刻。 服務似乎只使用Wi-Fi和網絡位置。我沒有注意到GPS在運行。我不能說它是否只是隱藏的位置圖標或真的不使用GPS。 準確性 - 這太可怕了。根本沒有檢測到20個圓圈區域,但我的家庭區域範圍除外。它看起來像整個位置圈,包括錯誤必須在圍欄區域內。有時會檢測到1000米區域,並且延遲很大。這些實驗是在開放區域進行的,且Wi-Fi ap數量很少。我仍然試圖找到真正可靠的設置來支持這項服務。獲得意圖後,我想打開GPS位置並在我自己的代碼中進行最後處理。
沒錯,你說的話是絕對正確的 - 我只是想出來:) – Flo
在我的測試,從谷歌的代碼示例停止工作,如果我的應用程序被打死。因此,我切換到廣播接收器而不是IntentService,然後後臺監視按預期工作。 http://stackoverflow.com/questions/19505614/android-geofence-eventually-stop-getting-transition-intents/19521823#19521823 –