我们正在开发一个将用户输入的表单数据发送到服务器的企业应用程序。该应用程序会在用户点击保存后立即尝试发送数据。如果发送数据出现问题(例如没有网络连接),我们想在 X 分钟后重试,并定期重试,直到数据发送成功。请求通常不是很大或运行时间不长,但用户经常处于无法访问网络的环境中,因此重试很重要。
在应用程序运行时重试 API 请求很简单,但理想情况下,我们希望在应用程序处于后台时保持定期重试。我们可以通过 iOS 后台执行功能实现的最佳效果是什么?以下是我看到的一些选项:
- 用于
beginBackgroundTaskWithExpirationHandler:
一次性请求额外时间。这将使我们基本上在应用程序进入后台后再次尝试发送数据,但不会重复尝试 - 使用“后台获取”功能,并在应用程序被唤醒以进行后台获取时尝试将任何新数据发送到服务器。理论上听起来不错,但我担心这可能是对后台获取功能的滥用?
其中之一是我最好的选择吗?我还缺少另一种方法吗?
这是一个具有 iOS 和 Android 实现的 Xamarin 应用程序,但我认为这不会对我的问题产生重大影响;我可以根据需要编写 iOS 特定代码。