0
  1. この方法はLocationListener.onLocationChanged、場所を取得する他のどの方法よりも優れています。

  2. もしそうなら、より良いバッテリー性能を得るために、それを使用するより良い方法があります.

4

1 に答える 1

0

に代わるものはわかりませんが、LocationListener.onLocationChangedこれについて何か光を当てることができますか?

バッテリーの問題に関しては、バッテリーの消耗 requestLocationUpdates() を避けるために電話をかける頻度を減らすことができます. この呼び出しには変数minDistance(ミリ秒単位) が含まれているため、これを使用する必要があります。Android 4.3 までは minDistance の監視は必須ではなかったことに注意してください。

4.3 より前のバージョンのデバイスの場合は、

1) onLocationChangedで更新の呼び出しを停止する

@Override
public void onLocationChanged(Location location) {
mLocationManager.removeUpdates(mLocationListener);
}

2) メソッドの実行をオーバーライドして、新しい間隔を導入します。

 @Override
public void run() {
    // getting location...
    mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mLocationListener);
    // ...once per hour
    mHandler.postDelayed(onRequestLocation, DateUtils.HOUR_IN_MILLIS);
}

詳細については、requestLocationUpdates()のドキュメントを参照してください。

于 2015-01-30T06:34:01.873 に答える