【问题标题】:Best practices: Getting location updates in background最佳实践:在后台获取位置更新
【发布时间】:2015-09-08 15:07:48
【问题描述】:

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

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

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

除非用户这样做,否则在不杀死后台服务的情况下,在后台持续获取位置更新的最佳方式是什么?

【问题讨论】:

    标签: android broadcastreceiver android-service android-fusedlocation


    【解决方案1】:

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

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

    【讨论】:

    • 第二种方法很好,但是当应用程序处于后台时,我可以得到谁的频繁更新,因为它不能在服务中工作。你能帮忙吗,谢谢
    • @arslanhaktic 不要在回答另一个问题时寻求帮助,这是错误的做法。如果您需要帮助,您需要发布代码、回答问题/cmets 等。请发布一个新问题并尽可能详细地说明您的问题。
    猜你喜欢
    • 2013-07-31
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多