Android 是否有必要对Google地图使用LocationManager.RequestLocationUpdate和LocationManager.RemoveUpdate()?
我用谷歌地图视图创建了一个应用程序。为了减少电池消耗,我想在应用程序未打开时停止位置请求。我发现这可以通过LocationManager完成。例如:Android 是否有必要对Google地图使用LocationManager.RequestLocationUpdate和LocationManager.RemoveUpdate()?,android,google-maps,geolocation,google-maps-android-api-2,Android,Google Maps,Geolocation,Google Maps Android Api 2,我用谷歌地图视图创建了一个应用程序。为了减少电池消耗,我想在应用程序未打开时停止位置请求。我发现这可以通过LocationManager完成。例如: @Override public void onPause() { locationManager.removeUpdates(this); super.onPause(); } @Override public void onResume() { locationManager.requestLocationUpdate
@Override
public void onPause() {
locationManager.removeUpdates(this);
super.onPause();
}
@Override
public void onResume() {
locationManager.requestLocationUpdates(locationManager.getBestProvider(criteria, true), minUpdateTime, minUpdateDistance, this, null);
super.onResume();
}
但目前我根本没有使用LocationManager,谷歌地图视图仍然能够获取当前位置。我只需要调用
mMap.setMyLocationEnabled(true)我的OnMapReadyCallback()函数中的code>。因此,谷歌地图视图似乎实现了自己的LocationManager,这就引出了一个问题:是否有必要创建一个LocationManager只是为了告诉它在应用程序关闭时停止更新,或者调用mMap.setMyLocationEnabled(false)就足够了代码>在我的onPause()
函数中?听起来你可以摆脱位置请求。如果需要在onLocationChanged()
中处理位置更新,则只需请求位置更新。另外,您不需要调用mMap.setMyLocationEnabled(false)
。您只需确保您拥有位置权限,然后致电mMap.setMyLocationEnabled(true)
(无需在任何时候将其设置为false)@DanielNugent,谢谢您的帮助。我注意到,当我不调用mMap.setMyLocationEnabled(false)
时,当我关闭应用程序时,位置图标仍然可见。因此,该应用程序似乎仍在后台使用该服务。听起来你可以摆脱你的位置请求。如果需要在onLocationChanged()
中处理位置更新,则只需请求位置更新。另外,您不需要调用mMap.setMyLocationEnabled(false)
。您只需确保您拥有位置权限,然后致电mMap.setMyLocationEnabled(true)
(无需在任何时候将其设置为false)@DanielNugent,谢谢您的帮助。我注意到,当我不调用mMap.setMyLocationEnabled(false)
时,当我关闭应用程序时,位置图标仍然可见。因此,该应用程序似乎仍在后台使用该服务。