如何使用locationManager (全球定位系统和网络提供商)只读取位置一次,而不再寻找位置更新,以节省电池?
发布于 2011-11-02 20:58:48
尽管requestSingleUpdate()在技术上是正确的答案,但您应该使用
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);在获得第一个位置后,请等待一段时间。该位置往往会摆动几秒钟。要确定修复是否稳定使用,请使用location.getAccuracy()。一旦精度稳定下来,就调用locationManager.removeUpdates(mLocationListener);
发布于 2011-11-02 19:05:52
只需从位置管理器中删除更新即可。
locationManager.removeUpdates(this);发布于 2016-01-06 14:09:41
public LocationManager locationManager;
try {
locationManager.requestSingleUpdate( LocationManager.GPS_PROVIDER, new MyLocationListenerGPS(), null );
} catch ( SecurityException e ) { e.printStackTrace(); }
public class MyLocationListenerGPS implements LocationListener {
@Override
public void onLocationChanged(Location location) {
// your code and required methods go here...
}在“requestSingleUpdate”中使用“null”可以在同一线程上保持更新检查(用于服务)。这个方法允许你把它放在一个循环中,如果你从一个活动中运行它。我认为使用异步任务将是更好的方法。
https://stackoverflow.com/questions/7979230
复制相似问题