对我来说,它似乎是在活动第一次开始时被调用,就在onCreate之后,它似乎以随机的间隔被调用,无论我是否移动?
不管怎样,如果我在onCreate方法中有这样的代码,它会自动调用吗?
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
对吗?
干杯,迈克。
发布于 2011-12-22 15:57:36
您的问题不清楚,initially.Your代码和标题不匹配。我只是回答你的题目。
您必须为您的位置管理器注册位置侦听器,然后只会根据您在注册位置侦听器时提供的设置调用onLocationChanged()。
参见下面的代码如何做到这一点。我使用GPS提供商,您也可以使用任何基于标准的提供商。
LocationManger lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
});
对于您的问题,如果当前位置更新与上一个已知位置不匹配,则将调用onLocationChanged()。
更新的位置将针对每个minTime (在我的例子中为1000毫秒)和如果设备移动minDistance (在我的例子中为0米)的距离而改变。
我希望你能理解这一点。
发布于 2011-12-22 15:46:35
public void onLocationChanged(Location location)
一旦您的位置发生更改,上述方法就会自动调用。
https://stackoverflow.com/questions/8600688
复制相似问题