gpt4 book ai didi

java - 在代号一中使用 LocationManager 的正确方法

转载 作者:行者123 更新时间:2023-11-30 09:14:26 24 4
gpt4 key购买 nike

我正在使用 LocationManager 来跟踪用户的位置并在 GoogleMaps 上显示相同的位置。我正在使用以下方法并对此有一些疑问。

为了第一次获取用户的位置,我正在使用:

locationManager = LocationManager.getLocationManager();
location = locationManager.getCurrentLocation();

据我了解,这是一个阻塞调用。因此,我会显示一个无限进度条,直到此方法返回。

获得位置后,我在 WebBrowser 组件中调用托管在我的服务器上的 jsp 页面,并将 lat 和 lng 传递给该页面。此页面返回以用户位置作为标记的谷歌地图。

我覆盖了 WebBrowser 的 onLoad() 方法以在页面加载时获取事件。页面加载后,我会为我的 locationManager 分配一个监听器以获取位置更新。当我在监听器中收到更新时,我使用 BrowserComponent -> execute() 方法在页面上执行 javascript。

这种方法效果很好。

问题:

当我第一次向 LocationManager 查询用户的位置时,我并没有明确分配一个监听器。这个方法如何在内部执行?

这会启动自己的监听器吗?

如果是,那么当我在 onLoad() 方法中分配一个监听器时,初始监听器是否被移除?

我应该明确清除我的 locationManager 的监听器吗?

或者当我分配监听器时,它会分配较早启动的监听器吗?

我最终会让两个听众做同样的工作吗?

BR,

桑凯特

最佳答案

您正在正确使用 API 调用 getCurrentLocation() 或 getLastKnownLocation() 将返回一个 Location 对象。(它可能会在内部启动一个监听器,但会在内部停止)。当您调用 setListener 时,您应该在不想再获取更新时清除您的监听器。(无论哪种方式,您最终都不会得到 2 个听众)

注意 getCurrentLocation() 可能会在 Android 上返回不太准确的 Location 对象,因为如果 gps 不可用和/或不工作,它将默认为网络提供商。

关于java - 在代号一中使用 LocationManager 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com