Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否有必要对Google地图使用LocationManager.RequestLocationUpdate和LocationManager.RemoveUpdate()?_Android_Google Maps_Geolocation_Google Maps Android Api 2 - Fatal编程技术网

Android 是否有必要对Google地图使用LocationManager.RequestLocationUpdate和LocationManager.RemoveUpdate()?

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

我用谷歌地图视图创建了一个应用程序。为了减少电池消耗,我想在应用程序未打开时停止位置请求。我发现这可以通过LocationManager完成。例如:

@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)
时,当我关闭应用程序时,位置图标仍然可见。因此,该应用程序似乎仍在后台使用该服务。