Когда два объекта locationManager вызывают requestLocationUpdates (...)? - PullRequest
2 голосов
/ 06 марта 2012

Код такой:

private LocationManager locationManager1;
private LocationManager locationManager2;    
......
locationManager1 =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager2 =(LocationManager)getSystemService(Context.LOCATION_SERVICE);    
....
locationManager1.requestLocationUpdates("GPS",30000, 0, LbsClient2ServerDemo.this);

locationManager2.requestLocationUpdates("GPS",0, 0, LbsClient2ServerDemo.this);    
......

Когда два объекта locationManager вызывают requestLocationUpdates(...), у locationManager1 и locationManager2 есть поставщики GPS.

Объект locationManager1 сейчас ищет спутники, но идет locationManager2, прекратит ли locationManager2.requestLocationUpdates () locationManager1? Может быть, это приведет к тому, что местоположение GPS будет намного медленнее?

1 Ответ

2 голосов
/ 10 марта 2012

Вам не нужно создавать два объекта LocationManager .

Используйте этот способ, чтобы получить всех доступных провайдеров и получить от них исправления, а исправления, возвращенные в onLocationChanged(), будутбудь лучше, чем может LocationManager .

List<String> providers = locationManager.getProviders(true);
for (String provider : providers) {
    locationManager.requestLocationUpdates(provider, 0, 0, this);
}
...