Android 前台服务中的定期 HTTP 请求

问题描述 投票:0回答:1

这个问题更多的是关于使用什么工具而不是确切的代码。

我有一个 Android 应用程序,允许用户定义一些任务。每个任务都与定期 REST HTTP 查询相关 - 假设每 5 分钟一次。即使用户关闭应用程序也应该继续。有关进度的信息通过前台服务显示。当任务完成时 - 失败或成功 - 会发送通知。

现在我的解决方案是这样的:
当应用程序启动时,我绑定到服务。当用户添加任务时,我将其发送到服务,并且服务启动前台服务。该任务在无限循环的线程中运行:发送请求 -> 睡眠 -> 发送请求 -> 睡眠... 任务完成后,我发送广播通知。如果所有任务都完成,那么我会停止前台服务(或多或少)。

它似乎有效,但我的感觉是我没有使用正确的工具:)。
有没有更好的方法来运行这样的周期性任务?如果我想同时改变频率怎么办?
我应该使用广播将通知从服务发送到应用程序吗?我使用了侦听器,但当应用程序被“系统”关闭时,似乎没有可靠的方法来注销侦听器。
最后:前台服务是完成所有事情的好地方吗?或者也许它应该只负责显示通知?

android android-service android-broadcast android-service-binding
1个回答
0
投票

你最终得到了其他有用的东西吗?我已经用 Workmanager 尝试过,但这对我无法绕过的前台通知有限制。

虽然如果你的工作是 < 10 minutes, then the job still runs to completion, so that might be a solution for you.

© www.soinside.com 2019 - 2024. All rights reserved.