当两个locationManager对象调用requestLocationUpdates(...)?

时间:2012-03-06 05:16:14

标签: android location locationmanager

代码是这样的:

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 个答案:

答案 0 :(得分:2)

您不必创建 LocationManager 的两个对象。

使用这种方式获取所有可用的提供程序并从中获取修复程序,onLocationChanged()中返回的修补程序将更好, LocationManager 可以获得。

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