繁体   English   中英

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

[英]How to receiving data when the iOS app is in background mode

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

如果有人对此有上述想法,请帮助我解决。

提前致谢,

维维克

看看在 DidEnterBackground 期间执行任务

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

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

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

你可以在DoWork方法中做一些事情。 顺便说一句,我认为苹果不建议将其作为服务来接收数据。 通常,此后台任务旨在处理未完成传输的数据,例如下载或上传数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM