google-play-services-lib を使用する Android アプリケーションを開発しています。このアプリには Google マップがあり、locationManager を使用してユーザーの位置を特定します。次に、Google プレイスを見つけて、それらの Google ルートを追跡します。私のコードでは、私は使用します
@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() でその機能が停止すると思いました。
誰でも私の問題を解決できますか? 前もって感謝します!