Android 位置管理器getLastKnownLocation()是否缓存上次修复?
我正在注册位置更新:Android 位置管理器getLastKnownLocation()是否缓存上次修复?,android,Android,我正在注册位置更新: public void onResume() { LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); List<String> providers = lm.getProviders(true); for (String it : providers) { lm.requestLocationUpdates(it
public void onResume() {
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
List<String> providers = lm.getProviders(true);
for (String it : providers) {
lm.requestLocationUpdates(it, 0, 0, myListener);
}
}
应该把最近的位置还给我,对吗?只是想知道对于提供者是否有任何策略,它可能不会返回其最新的修复程序(即,它收到修复程序,但由于某种原因内部实现不会将其缓存为最后一个已知位置,或者在作为最后一个已知位置提供服务之前有一些超时)
谢谢如果您检查的源,您可以看到如果启用了位置提供程序,则提供程序的最后已知位置将更新,因此答案是肯定的。PS:您可以使用loc.getTime()获取此修复程序的UTC时间。
Location loc = lm.getProvider("gps").getLastKnownLocation("gps");