ユーザーの現在地を必要とするAndroidアプリケーションを作成しています。次のコードを使用して、ネットワークとGPSの両方から位置情報の更新を登録します(locationManagerはすでに定義されています)。
// Register the listener with the Location Manager to receive location updates.
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
getResources().getInteger(R.integer.gps_min_time),
getResources().getInteger(R.integer.gps_min_dist), this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
getResources().getInteger(R.integer.gps_min_time),
getResources().getInteger(R.integer.gps_min_dist), this);
私は現在このコードをに持っていますがonCreate
、電力を節約するために、両方のリスナーを削除し、onPause
両方をに再度追加しますonResume
。
アプリケーションが起動すると、両方のリスナーが2回追加されます。1回はに、もう1回はに追加onCreate
されonResume
ます。これについて2つの質問があります:
- 各リスナーを2回追加するということは、実際に2回追加されることを意味しますか、それとも2回目の呼び出しは効果がありませんか?
- を削除してそのままにする必要がありますか、それともすべてのリスナーを最初に削除して
requestLocationUpdate
から再度追加する必要がありますか?onCreate
onResume
onResume