位置管理器getLastKnownLocation()缓存上次修复?

时间:2012-03-29 17:15:02

标签: android

我正在注册位置更新:

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);
    }
}

现在收到的任何新位置修复都会缓存在提供程序中吗?换句话说,如果gps监听器在1秒前获得了新的修复,请调用以下内容:

Location loc = lm.getProvider("gps").getLastKnownLocation("gps");

应该给我回到最新位置,对吗?只是想知道是否有一个提供商的政策,它可能不会返回其最新的修复(即它收到修复,但内部实现不会因为某种原因将其缓存为最后一个已知位置,或者在它之前有一些超时)得到了最后的知名度,

由于

1 个答案:

答案 0 :(得分:1)

如果您检查LocationManagerService.java的来源,则可以看到如果启用了位置提供商,则会更新提供商的最后已知位置,因此答案为是。