【问题标题】:Best way to send user location updates to the server in the background(Android)在后台将用户位置更新发送到服务器的最佳方式(Android)
【发布时间】:2015-06-02 07:46:20
【问题描述】:

我的应用需要经常向用户发送位置更新,即使他不使用该应用也是如此。因此,我创建了一个返回 start_sticky 的服务,并且我正在使用 Google 位置服务发送此处指定的数据 android location updates。我的服务正在实现 ConnectionCallbacks、OnConnectionFailedListener、LocationListener 因此,每当调用 onLocationChanged(Location location) 时,我都会将位置发送到服务器。我想知道这样做是否会导致更快的电池消耗。如果是这样,更好的方法是什么。在问这个问题时,stackoverflow 给了我一个警告,说这个问题似乎是主观的,并且可能已关闭。但我想不出另一种方法来问这个问题。希望有人可以帮助我。在此先感谢

【问题讨论】:

    标签: android service location


    【解决方案1】:

    我可以想到两种方法:

    1- 我假设当用户的位置发生变化时,应用程序会向服务器发送 lat 和 lng。因此,您可以保存 lat 和 lng 的更改,并在每收集 20 个 lat/lng 后将一组更改发送到服务器。

    2- 您可以检查位置更新的 lat/lng 是否与之前的有很大差异,因此您可以确定将数据发送到服务器的速率。例如,如果 lat/lng 大致相同,则降低 onLocationChange 侦听器速率(例如用户在家)。而当变化很大时,再增加位置监听率(例如用户正在开车)。

    但是,这一切都取决于位置数据的用途。希望这可以帮助!

    【讨论】:

    • 谢谢 ziad 我认为第一种方法对我不起作用。我会尝试实现你的第二种方法并让你知道
    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多