iOS应用程序处于后台模式时如何接收数据

时间:2020-03-27 09:31:29

标签: ios iphone xamarin.forms xamarin.ios background-process

我在Xamarin.Forms中有iOS应用程序开发人员。当它处于最小化/后台模式时,我想接收来自服务器的请求并希望在iOS应用中执行它。我已经使用过Info.plist中可用的“背景模式”选项,例如“音频,Airplay和画中画”,“ IP语音”,“背景提取”,“背景处理”,但是对我来说不起作用。 >

如果上面有任何想法,请帮助我解决。

预先感谢

Vivek

1 个答案:

答案 0 :(得分:0)

看看Performing Tasks During DidEnterBackground

除了使长期运行的任务在后台安全外,还可以使用注册来启动任务,因为将应用程序置于后台。 iOS在AppDelegate类中提供了一个名为DidEnterBackground的事件方法,可用于在应用程序进入后台之前保存应用程序状态,保存用户数据以及加密敏感内容。应用程序有大约五秒钟的时间从此方法返回,否则它将被终止。因此,可以从DidEnterBackground方法内部调用可能需要五秒钟以上才能完成的清理任务。这些任务必须在单独的线程上调用。

该过程几乎与注册长时间运行的任务相同。以下代码片段说明了这一点:

public override void DidEnterBackground (UIApplication application) {
  nint taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
  new Task ( () => {
    DoWork();
    UIApplication.SharedApplication.EndBackgroundTask(taskID);
  }).Start();
}

您可以使用DoWork方法进行操作。顺便说一句,我认为苹果并没有要求将其作为一种服务来接收数据。通常,此后台任务旨在处理未完成的数据传输,例如下载或上传数据。