如果互联网连接到设备,如何每小时拨打一次网络服务

时间:2018-08-04 08:24:53

标签: android android-asynctask broadcastreceiver background-service

我想在连接互联网时在后台调用Web服务。如果已连接,如果互联网已关闭,我想每隔一小时打一次电话,然后停止服务。我怎么能够?它需要适用于从16到27的所有版本。

1 个答案:

答案 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