【发布时间】:2019-09-05 23:20:21
【问题描述】:
我有一个 Xamarin.Forms 应用程序,用户在其中创建“列表”,然后将它们发送到服务器(Http api 调用)。我们的一个用例是用户创建了一个列表,但目前没有互联网连接,因此列表将处于“待定”状态。然后用户可以后台应用程序(不再活动)。稍后,用户现在可以连接互联网,我希望应用自动发送这些待处理的列表,而无需用户再次打开应用。
我目前正在 Xamarin.Forms 应用的 iOS 实现中寻找一种方法,并且还需要对 Android 实现做类似的事情。
我已经查看了 iOS 的 Background Fetch,但目前 PerformFetch 似乎很少被调用,即使我将间隔设置为 backgroundfetchminimum,所以它可能不够可靠。 此外,我在 iOS 文档上读到 PerformFetch 上的代码不应运行超过 30 秒,否则会受到“惩罚”并进一步限制间隔。列表可以附加大图像或视频,发送所有这些肯定需要 30 多秒。
【问题讨论】:
-
PerformFetch 不是您正在寻找的 API。看看 NSUrlSessionUploadTask.CreateUploadTask,从这里开始有一些好的文档:developer.xamarin.com/guides/ios/application_fundamentals/…
-
阅读文档,NSUrlSsession 似乎是我在 iOS 用例中所需要的。谢谢你的建议
标签: xamarin xamarin.forms xamarin.ios background-process background-fetch