2011-08-19 92 views
1

我正在開發一個位置日誌記錄應用程序,可以每秒保存一個電話位置。
我實現了訂閱的LocationManager更新服務:Android LocationManger進入睡眠狀態?

HandlerThread thread = new HandlerThread("LocationServiceHandler"); 
locationManager.requestLocationUpdates(GPS_PROVIDER, 
    1000 /* milliseconds*/, 0 /* meters */, listener, thread.getLooper()); 

服務開始通過結合到應用環境中。
應用程序通常在後臺運行,不需要任何用戶交互。
通常,當我在我的建築物周圍走動時它可以正常工作 - 服務每秒獲得一個新的位置+時間戳,並將其存儲到位於外部存儲的文件中。
但是當我開始遠離城市的空地時,我發現日誌文件中的記錄之間有4-5分鐘的間隔。我可以肯定地說,那時電話沒有被使用,而且是在敞開的天空下,沒有任何可見的東西阻擋衛星。它不規則地發生,每小時一次,我不能在我的辦公室重現這種行爲。
任何想法,可能會導致什麼?如何避免?
手機是Nexus S,Android 2.3.4

回答

0

您是否在使用喚醒鎖?手機可能會進入睡眠狀態,因此您會錯過地點。否則,它可能只是位置管理者,因爲1000毫秒是最好的情況,所以不給你位置。請參閱Update GPS Listener every 5 seconds的答案。

+0

不,我不使用喚醒鎖,但可以輕鬆檢查。我需要的只是啓動我的應用程序,不要觸摸手機...讓我們說一個小時 – GetUsername

+0

可悲的是,但不是,手機沒有讓LocationManager進入睡眠狀態。我已經檢查過這種方式:我已經啓動了應用程序,鎖定了電話屏幕並且走了很長時間(超過兩個小時)。手機在我的口袋裏,我根本沒有碰它。之後,我分析了日誌,發現了2秒的差距,這並沒有打擾到我。仍然無法重現長4-5分鐘的間隔... – GetUsername

相關問題