【发布时间】:2016-03-26 03:55:06
【问题描述】:
我想在一小段时间内每秒接收一次位置更新,所以我写了这段代码:
public void registerListener() {
if (ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(c, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
} else {
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 10, locationListener);
}
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
Log.v(TAG, ""+longitude + " " +latitude);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
};
我从其他地方打电话给registerListener()。问题是,我的位置更新只被调用一次,而且我只得到该日志一次。此外,日志仅在 调用 registerListener 之后大约 5-10 秒出现。
速度慢是什么原因,为什么不更新位置?
谢谢,
鲁基尔
【问题讨论】:
-
您将最小距离设置为 10 米
-
@Ruchir Baronia 尝试使用 FusedLocation API,它很好,最新的参考这里:- coderzpassion.com/android-location-using-google-play-services
标签: java android database performance optimization