私はAndroidプロジェクトでlocation updates
を取得するためにsingleton
を持っています。 これは、getters
を使用して必要な値を取得したいときにうまく動作します。アクティビティのロケーション更新のためのAndroid登録
ただし、私のactivities
のうちの1つについては、発生したときに位置の更新を取得する必要があります。とにかくsingleton
に「タップ」して位置の更新を取得し、activity
の中に必要なときに処理しますか?または、場所が更新されたbroadcast
にはいくらかであり、iOS
と同様の更新がbroadcast
に登録されていますか?
public class LocationSingleton implements LocationListener {
//Instance
private static LocationSingleton mInstance = null;
private static Context appContext;
private LocationSingleton(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, MINIMUM_DISTANCE, this);
}
public static LocationSingleton getInstance(Context context) {
if (mInstance == null) {
appContext = context.getApplicationContext();
mInstance = new LocationSingleton(appContext);
}
return mInstance;
}
/*
** Location methods
*/
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
Log.d("Location", "Provider disabled");
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
Log.d("Location", "Provider enabled");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
シングルトンは、さまざまな理由から本当に悪い考えです。なぜあなたは 'Service'を使って位置更新を聞かないのですか?それははるかに良い解決策になります。場所の更新情報を正確に入力すれば、どういう意味でしょうか? 'Activity'が開いている限り、位置更新を聞きたいですか?もしそうなら、これをあなたの 'Activity'に直接実装するほうがはるかに優れています。 –
私はアプリケーションコンテキストを渡しています。たぶん、シングルトンは最善のアイデアではないかもしれませんが、私は、アプリケーションが開いている間(シングルトンはそれを保存する)に位置データを収集する方法を望んでいました。地図。 –
それはまさに 'LocationManager'がすでにあなたのためにしていることです。 UIから独立した位置更新を実際に聞きたい場合は、 'Service'を使用してください。 –