gpt4 book ai didi

Android:使用 requestSingleUpdate 或替换它

转载 作者:行者123 更新时间:2023-11-29 18:20:56 25 4
gpt4 key购买 nike

我正在开发应用程序,它必须获得纬度和经度。在我的例子中,requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) 不在选项中。为什么?因为我必须在用户执行需要位置的操作时获取位置(假设他点击按钮)。当按下按钮时,我需要准确的位置。在 requestLocationUpdates 中,我们可以设置 minTime - 如果我设置这个让我们说 30000,“按钮点击时间”的位置将不会像我想要的那样好。出于同样的原因,minDistance 也没有我想要的那么好。如果我理解函数 requestLocationUpdates 正确 - 当 minTime 和 minDistance 设置为 0 时,位置一直在更新。如果我错了,请纠正我。应用程序适用于我正在工作的公司,该应用程序将在白天和晚上使用。因此,如果应用程序会一直检查位置更新,则电池通常会耗尽。这就是为什么我当时需要位置,那个按钮被击中了。我找到了requestSingleUpdate功能。但我不能在 eclipse 中使用它 =( 就像它不存在一样。
有没有其他方法可以做到这一点,或者我错过了什么?

最佳答案

requestSingleLocation API 级别 9 的新方法。如果您的目标是更早的 API 级别,您将无法使用此方法。

获取位置信息的一个问题是需要时间才能修复。与网络提供商相比,GPS 定位提供商的问题更大。如果您只使用网络提供商,那么当用户单击按钮时获取位置信息可能不会有太多延迟(我说这对您的应用程序对数据做了什么,或者您的用户体验类型一无所知正在努力提供)。

您可以尝试的其他方法是 PASSIVE_PROVIDER .它允许您获取其他应用请求的位置更新。这意味着您必须请求 ACCESS_FINE_LOCATION然而许可。您可能还需要让某些东西保持运行以接收位置更新(可能是服务或 BroadCastReceiver )。 BroadcastReceiver 方法不应使用那么多的额外电池生命周期,因为它仅在接收到 Intent 时运行,而 PASSIVE_PROVIDER 仅在其他应用无论如何请求它们时才获取位置。

PASSIVE_PROVIDER 的另一个难点是你最终应该调用 removeUpdates .何时何地调用它实际上取决于您的应用的结构方式以及您处理用户退出应用的方式。

关于Android:使用 requestSingleUpdate 或替换它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5468463/

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