如何在后台运行iphone应用程序时接收异步网络消息

如何在后台运行iphone应用程序时接收异步网络消息,iphone,cocoa-touch,networking,background,Iphone,Cocoa Touch,Networking,Background,我有一个iphone应用程序从服务器接收网络消息。当应用程序在前端运行时,它是正常的 但是,当应用程序在后台运行时,应用程序不会收到网络消息。当我把它带回弗伦登后,它开始接收 如何使应用程序在后台运行时也能接收网络消息 谢谢。我不是iphone开发者,但对我来说,对于所有后台应用程序,所有网络消息都应该推送到苹果服务器,然后推送到手机上。安卓系统中没有类似的服务。首先查看以下帖子: 第二,具体来说,当你的应用程序在后台并且被操作系统冻结时,它将无法访问互联网,因此你的应用程序不会听到来自异步请求

我有一个iphone应用程序从服务器接收网络消息。当应用程序在前端运行时,它是正常的

但是,当应用程序在后台运行时,应用程序不会收到网络消息。当我把它带回弗伦登后,它开始接收

如何使应用程序在后台运行时也能接收网络消息


谢谢。

我不是iphone开发者,但对我来说,对于所有后台应用程序,所有网络消息都应该推送到苹果服务器,然后推送到手机上。安卓系统中没有类似的服务。

首先查看以下帖子:

第二,具体来说,当你的应用程序在后台并且被操作系统冻结时,它将无法访问互联网,因此你的应用程序不会听到来自异步请求的任何回调

第三,可能的战略:

  • 当你的应用程序切换到后台时,立即向你的服务器发送一个请求,这样你的服务器就会有一个关于你的应用程序最新状态的更新记录
  • 当你的应用程序要切换回前台时,再次通过发布请求让你的服务器知道这一点
  • 可能会发生这样的情况:你的应用程序仍在后台,而你的服务器只需要访问它或向它发送任何消息。在此场景中,请尝试Apple提供的APNs(Apple推送通知服务)。它是免费的,易于实现。一旦你为你的应用程序设置了APN,可能的结果是,用户从你的服务器收到一条推送消息,然后决定将你的应用程序放回前台。尽管这仍然完全取决于用户,但机会还是很大的

在后台,您有两个网络连接选项:

  • 推送通知。应用程序未运行,但您的服务器可以请求发送通知,然后通知将发送到iPhone,提示用户启动您的应用程序,然后通过常规请求从服务器更新自身

  • 后台网络呼叫。您的应用程序可以请求在后台保持线程活动,以便完成网络活动。您可以使用此功能在应用程序关闭时发送请求,以便与服务器签入


如何进行后台网络呼叫?有参考链接吗?Thx.在系统中注册为后台应用程序,以保持线程运行,并且只需按照通常使用
NSURLRequest
等的方式执行即可。