【问题标题】:LocationServices PendingIntent vs ServiceLocationServices PendingIntent 与服务
【发布时间】:2016-04-12 21:45:34
【问题描述】:

我正在尝试制作一个 100% 的时间在后台运行的优化应用程序。 它接收位置更新并将其发布到服务器。

我想知道我是否按照我应该的方式做事。

此时我的应用程序有一个使用 LocationServices API 请求LocationUpdates 的服务。 它会累积位置并尝试将它们发送到服务器。

如果没有更多位置待定,则此服务将自行终止。

我还有一个闹钟可以每隔一段时间唤醒这个服务。

所以下次服务唤醒时,启动一个新的 GooglePlayServices 会话并再次接收位置。

我知道使用pendingIntents 对非托管位置跟踪更好,但我仍然认为需要后台服务及时上传位置。

- 我应该停止使用警报服务吗?

- 有没有什么方法可以在没有用户干预/活动的情况下开始请求位置更新?

- 广播接收器是否能够管理网络发布等繁重的工作?

从 google locationServices 文档获得this

public abstract PendingResult<Status> requestLocationUpdates
(GoogleApiClient client, LocationRequest request, PendingIntent
callbackIntent)

使用指定回调请求位置更新 待定意图。

此方法适用于后台用例,更具体地说 用于接收位置更新,即使应用程序已被 系统。为此,请使用 PendingIntent 来启动 服务。对于前台用例,LocationListener 版本的 推荐方法,见 requestLocationUpdates(GoogleApiClient, LocationRequest,LocationListener)。

提前致谢

【问题讨论】:

    标签: android service android-pendingintent location-services


    【解决方案1】:

    有没有什么方法可以在没有用户干预/活动的情况下开始请求位置更新?

    是的,您可以创建以指定频率设置警报的好场景。即使应用程序不工作,您的闹钟也会唤醒设备,接收位置然后发送到服务器。完成工作后,设备再次休眠。请检查此project,这里是来自 commonsguy 的超级场景。

    broadcastReceiver 是否能够管理网络发布等繁重的工作?

    是的,确实如此,您可能会将位置发送到服务器。

    我应该停止使用警报服务吗?

    取决于您的跟踪方式.. 考虑示例

    • 每 10 分钟(或更长时间)接收位置并发送到服务器
    • 每 5 秒接收一次位置并发送到服务器(如实时跟踪)

    可能,对于第一个示例,您将设置重复警报,然后唤醒设备,接收和发送位置,最后允许设备休眠(10 分钟)。在这种情况下,您必须停止所有有关跟踪(定位服务、网络操作)的事情

    但在第二个示例中,您不能设置较低频率的警报,例如 5 秒。您应该不停止后台服务(理论上)并以 5 秒的间隔发出位置请求。在这种情况下,您不应停止诸如(唤醒设备、位置请求、网络操作)之类的资源。最后用户卸载应用程序:-)

    底线,关注 commonsguy 的project

    【讨论】:

    • 提前致谢。我已经像第一种情况一样发出了服务警报。它请求位置更新,在清空位置队列后将它们发送到服务器和 stopSelf()。就我而言,我需要以用户确定的频率上传位置,例如,在 1 到 10 分钟之间。您是否认为我应该通过广播服务来实现这一点,并在设备或服务处于睡眠状态时启动警报服务以重新开始。我知道这可能需要做很多工作:getAppSettings、registrer Google location services API、geofenceApi 等等。
    • 可以,但必须注意清醒时间。依靠在指定时间内完成所有过程,定义超时。如果超过,关闭一切,让睡眠直到下一个闹钟滴答声!例如,您不应该永远等待接收位置。如果您检查上面的链接,您将获得您必须注意的要点。
    • 好的。我看到了那个链接,但它没有使用 LocationServices API,我认为位置应用程序与上的不同。
    • 通过 LocationServices,我的意思是来自 google 的 LocationServices API:developer.android.com/intl/es/guide/topics/location/index.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多