如何解决Swift:连接设备后执行任务
我正在寻找在用户的设备重新连接到互联网后执行 API 调用的最佳方法。
背景是我正在为需要将数据发布到特定端点的应用程序构建离线支持。所以我的想法是,提交数据时设备将处于离线状态,然后一旦设备在线,我将发布到所需的端点。
我查看了各种后台任务,但找不到可以指定在设备连接到网络后立即执行任务的任务。我知道 Apple 倾向于限制何时可以执行后台任务,同时考虑到电池寿命和其他变量,所以这只是无法完成的事情吗?
谢谢大家
解决方法
使用后台 URLSessionConfiguration 创建一个 URLSession:
let config = URLSessionConfiguration.background(withIdentifier: backgroundIdentifier)
let session = URLSession(configuration: config)
当您使用此会话时,即使您的应用未运行,操作也会尽可能在后台执行。您可以通过将 isDiscretionary
设置为 true 来进一步配置,以避免在蜂窝网络上发送数据,并等待设备插入。
有关其他信息,请参阅 Downloading Files in the Background。虽然它专注于下载,但同样的流程也适用于发布。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。