android - 最佳实践 : Getting location updates in background

标签 android broadcastreceiver android-service android-fusedlocation

开发一个在后台更新用户位置的 Android 应用程序。现在,为此 Google 提供了两种方式:

  1. 通过 getlaSTLocation() 函数获取用户最后的位置。可以设置警报管理器,并借助广播接收器和服务,可以不断更新位置。 For example:

  2. 从融合位置提供程序请求定期更新,如图所示 here

哪种方式是在后台连续获取位置更新的最佳方式,除非用户这样做,否则 Android 不会终止后台服务?

最佳答案

第二种方法“请求定期位置更新”是有效。它允许您更具体地定制更新频率以及在什么情况下您将获得更新。您是在告诉 Android 您想要经常更新和/或如果用户移动了超过 X 米。

第一个使用 getLastLocation() 的方法是被动的。这意味着您无法控制更新的频率或质量。您基本上是在搭载其他应用程序的位置更新请求。如果有其他应用程序要求频繁更新,则调用 getLastLocation() 将为您提供相对较新/准确的位置。但是,如果其他应用程序不请求频繁更新(或者用户可能根本没有运行任何其他应用程序),则调用 getLastLocation() 可能会返回非常陈旧(不准确/旧)的数据.

关于android - 最佳实践 : Getting location updates in background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30992247/

相关文章:

java - 将 JsonObject 在 POST 中从 android 发送到服务器

android - 迁移到 Android 11 后无法绑定(bind)到服务

java - 为什么我看不到 android.support.v7 文件?

android - 向应用程序发送文本(不是特定的电话号码)

android - 如何以高频率将数据从服务传递到 Activity

android - 在 Android Canvas 或 OpenGL 上更快地绘制位图

android - 广播接收器返回的结果

android:来自市场 Activity 的响应

java - 管理服务和应用程序之间的 Realm

java - 如何让我的android应用程序在启动时启动然后隐藏