我有一些类似于以下内容的代码:
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 :(得分:1)
我使用了这里回答的技术:Best way to constantly monitor location
答案 1 :(得分:0)
您可以停止收听位置更新
// Remove the listener you previously added
m.removeUpdates(locationListener);
你可能已经看过这篇文章了,如果你没有看到这个帖子
http://developer.android.com/guide/topics/location/obtaining-user-location.html