2011-05-01 100 views
2

我有類似下面的一些代碼:的LocationManager每分鐘更新,消耗大量的電池電量的

LocationManager m = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
Criteria c = new Criteria(); 
c.setAccuracy(Criteria.ACCURACY_COARSE); 
String provider = m.getBestProvider(c, true); 
Intent i = new Intent(context, LocationReceiver.class); 
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0); 

m.requestLocationUpdates(provider, 900000, 0, pi); 

下面是接收器清單項:

<receiver android:name=".LocationReceiver" /> 

大多數它的工作時間正常,並且每15分鐘更新一次。然而,有時候,它會每分鐘更新一次,並消耗一堆電池電量。我在這裏做錯了什麼?

編輯:LocationManager是否不應該用於這樣的背景操作?

+0

可能重複[GPS更新間隔更快,信號良好?](http://stackoverflow.com/questions/3879290/gps -update-interval-is-faster-with-good-signal) – 2011-05-01 04:44:06

+0

那裏的解決方案根本沒有幫助。如果LocationManager始終每分鐘都會喚醒手機進行更新,即使檢查更新時間並將其與最後一次進行比較,仍會耗盡電池電量。 – synic 2011-05-01 06:06:04

+0

我注意到的是,在Android的味道和包括薑餅,位置管理器會默認給你更新每秒或幾秒鐘。當運行導航(前景或背景)或谷歌地圖(前景)時,我每秒鐘都會得到更新。當運行MIUI味道的冰淇淋三明治時,默認爲1分鐘。 因此,您可能會受到其他應用程序的干擾。你有沒有檢查過,目前沒有其他應用程序正在從位置管理器請求自己的更新?如果他們是,那麼你的應用程序是可以的。 – 2013-02-27 16:36:37

回答