【发布时间】:2019-08-18 06:02:36
【问题描述】:
我需要一个为我的应用程序持续运行的后台服务。我在网上寻找了不同的方式,例如前台服务,它不断显示 android 8 以上版本的通知,工作管理器和作业调度程序。我认为Work Manager在后台运行方面适合我的要求,但不确定是否可以根据位置距离变化触发。
https://developer.android.com/topic/libraries/architecture/workmanager
我看到我们可以像每 15 分钟一样定期更新,但想知道我们是否可以根据位置距离变化本身进行配置。
https://medium.com/@prithvibhola08/location-all-the-time-with-workmanager-8f8b58ae4bbc
例如,如果我为位置请求设置setSmallestDisplacement(10m),则应每10m距离更改一次触发worker manager并将位置发送到服务器。
https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest
【问题讨论】:
-
LocationRequests 已经在后台运行,即使在 Android 8+ 上也是如此。这就是为什么接受
PendingIntent。 -
那么是否可以在不运行服务的情况下获取位置更新?你能给我提供好的例子或文档来帮助我吗?@ianhanniballake
-
不要指望
setSmallestDisplacement对 10m 的变化敏感。要获得可靠的结果,请使用 100m+。还要考虑这一点:developers.google.com/awareness/android-api/fence-api-overview 最后一件事 - 您不需要服务,它不是 PC/服务器。如今,服务在 Android 中有点用处。任何后台任务机制(jobscheduler、workmanager 等)都会满足您的所有需求。 -
希望对您有所帮助:stackoverflow.com/a/56593800/1318946
标签: android google-maps android-location android-workmanager foreground-service