android - 应为 android locationmanager 提供多长时间的最小距离?

标签 android geolocation locationmanager

在 android 位置管理器中,我们应该提供更新的最小距离变化和更新之间的最短时间。因此我需要知道我应该提供多长时间的最小距离范围和最短时间间隔才能尽快知道当前位置?

最佳答案

虽然将两个值都设置为 0 会使您速度最快,但会消耗大量资源,因此会损失大量电池电量。要选择合适的值,您必须首先查看您的需求,如文档所述:

可以使用 minTime 参数控制位置更新间隔。位置更新之间耗时永远不会小于 minTime,尽管它可能更多取决于位置提供程序的实现和其他应用程序请求的更新间隔。

此外 documentation requestLocationUpdate 函数建议按如下方式选择您的值:

它说:

为 minTime 选择一个合理的值对于延长电池生命周期很重要。每次位置更新都需要来自 GPS、WIFI、Cell 和其他 radio 的电源。选择尽可能高的 minTime 值,同时仍然提供合理的用户体验。

具体来说:

如果您的应用程序不在前台并向用户显示位置,那么您的应用程序应避免使用 Activity 提供程序(例如 NETWORK_PROVIDER 或 GPS_PROVIDER),但如果您坚持选择 minTime of 5 * 60 * 1000(5 分钟) 或更长。如果您的应用程序位于 前台 并向用户显示位置,那么选择一个 更快的更新间隔是合适的。

对于 minDistance 参数而言:

如果它大于 0,则位置提供者将仅在位置更改至少 minDistance 米并且至少经过 minTime 毫秒时才向您的应用程序发送更新。 但是位置提供商使用 minDistance 参数更难省电,因此 minTime 应该是节省电池生命周期的主要工具。

希望这对您有所帮助。

关于android - 应为 android locationmanager 提供多长时间的最小距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17310430/

相关文章:

google-maps - 使用 mongodb 地理空间最佳策略的谷歌地图搜索

java - 需要一个 twitter API,它在给定坐标的特定位置获取推文

java - Android:java.lang.NullPointerException:尝试调用虚拟方法'double android.location.Location.getLatitude()

javascript - 地理位置未捕获类型错误 : Cannot read property 'coords' of undefined

android - 前台服务 onTaskRemoved 发送广播 Intent 失败 android.os.DeadObjectException

安卓工作室错误代码 : 1 Executing tasks: [:app:assembleDebug]

java - 无法使用 Kotlin 在项目中设置 Realm

java - setTitle 不工作 Android

android - 打开互联网后重新加载 WebView