Java Android LocationManager、粗略数据和电池消耗
我需要的只是Android上某个位置的粗略数据,所以在获取数据时,主要考虑的是保持电池电量。我认为这个代码:Java Android LocationManager、粗略数据和电池消耗,java,android,location,battery,Java,Android,Location,Battery,我需要的只是Android上某个位置的粗略数据,所以在获取数据时,主要考虑的是保持电池电量。我认为这个代码: LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 60 * 1000, 10
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10 * 60 * 1000, 1000, this);
这是正确的策略吗?还是最好每10分钟检查一次新位置并禁用listener,这似乎更接近谷歌网站上提出的代码,尽管对我来说不太合乎逻辑?而不是提到使用提供商名称获取提供商。并且,使用标准来设置您的需求
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
final String bestProvider = manager.getBestProvider(criteria, true);
最后呢,
locationManager.requestLocationUpdates(bestProvider, 0,1000, this);
或者,您可以在完成任务后立即请求单位置更新或禁用侦听器好的,这很有用,但它提供了我所要求的信息以外的其他信息-如果您始终需要数据,最好不要禁用侦听器,还是最好每10分钟打开和关闭一次?设备上的每个芯片组都需要时间来初始化。如果请求之间的间隔很长
removeUpdates
肯定是个好主意我猜我的问题并不完美,我编辑了(因此第一个参数现在是10*60*1000)。这样做更好还是禁用侦听器更好?