我想在连接互联网时在后台调用Web服务。如果已连接,如果互联网已关闭,我想每隔一小时打一次电话,然后停止服务。我怎么能够?它需要适用于从16到27的所有版本。
答案 0 :(得分:0)
在android中有广播,如果网络状态发生变化,它会通知您。您可以在其中注册一个小时的警报管理器,并检查是否已连接互联网,然后调用Web服务。
如果广播通知您网络已断开连接,则可以取消警报管理器。
以下是用于监听网络状态更改的文档:
https://developer.android.com/training/monitoring-device-state/connectivity-monitoring
这是关于在Android中使用警报管理器的很好的教程 https://en.proft.me/2017/05/7/scheduling-operations-alarmmanager-android/
谷歌还引入了workManager,它以非常简单的方式为您完成工作
通过WorkManager API,可以轻松指定可延迟的异步 任务以及何时运行。这些API可让您创建任务并 将其交给WorkManager立即运行或在适当的时候运行 时间。例如,某个应用可能需要从以下位置下载新资源 网络不时。使用这些类,您可以设置一个 任务,请选择适合其运行的环境(例如“仅在 设备正在充电并在线”),然后将其交给WorkManager运行 当条件满足时。任务仍然可以保证运行,即使 如果您的应用被强制退出或设备已重启。
这是文档的链接:
https://developer.android.com/topic/libraries/architecture/workmanager