我正在开发一个使用 google-play-services-lib 的 android 应用程序。这个应用程序有一个谷歌地图并使用 locationManager 来确定用户位置。接下来找到谷歌地方并跟踪他们的谷歌方向。在我的代码中,我使用
@Override
protected void onDestroy(){
super.onDestroy();
}
但是 com.google.android.gms 服务不会停止(即使 wifi、3G 和 gps 关闭)并且电池会耗尽。当我看到我的设备的电池使用情况时
CPU 总使用率 2 分 3 秒
后台 CPU 使用率 2 分 3 秒
GPS 10 小时 30 分钟。
在我的代码中,唯一需要位置更新的情况是
@Override
public void onLocationChanged(Location location) {
mLatitude = location.getLatitude();
mLongitude = location.getLongitude();
LatLng latLng = new LatLng(mLatitude, mLongitude);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(12));
}
和
// Getting LocationManager object from System Service LOCATION_SERVICE
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// Creating a criteria object to retrieve provider
Criteria criteria = new Criteria();
// Getting the name of the best provider
String provider = locationManager.getBestProvider(criteria, true);
// Getting Current Location From GPS
Location location = locationManager.getLastKnownLocation(provider);
locationManager.requestLocationUpdates(provider, 2000, 0, this);
但我认为随着 super.destroy() 的功能停止。
谁能帮我解决我的问题?提前致谢!