[英]Options for sending data to server/retrying requests in background
我们正在开发一个企业应用程序,该应用程序将用户输入的表单数据发送到服务器。 用户点击保存后,该应用会尝试立即发送数据。 如果发送数据时出现问题(例如,没有网络连接),我们希望在X分钟后重试,并定期重试,直到成功发送数据为止。 请求通常不是很大或运行时间很长,但是用户经常处于无法访问网络的环境中,因此重试很重要。
它很简单,可以在应用程序运行时重试API请求,但是理想情况下,我们希望在应用程序在后台运行时保持定期重试。 使用iOS后台执行功能可以达到的最佳效果是什么? 这是我看到的一些选项:
beginBackgroundTaskWithExpirationHandler:
一次性请求额外的时间。 基本上,这将使我们在应用程序进入后台后再尝试发送一次数据,但不会重复尝试 这些是我最好的选择之一吗? 我还缺少另一种方法吗?
这是一个具有iOS和Android实现的Xamarin应用,尽管我认为这对我的问题没有重大影响; 我可以根据需要编写iOS特定的代码。
我认为您错过了一种方法: 后台NSURLSessions 。 我认为这是您应该使用的。
我真的不知道您可以拍摄多少张照片。 这是我的建议:
beginBackgroundTaskWithExpirationHandler:
开始后台任务(使用beginBackgroundTaskWithExpirationHandler:
。 还请确保检查-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didResumeAtOffset:(int64_t)fileOffset expectedTotalBytes:(int64_t)expectedTotalBytes;
委托方法,以便在下载失败并没有重新开始时重新开始下载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.