【发布时间】:2011-06-03 11:56:02
【问题描述】:
我有一个 iphone 应用程序从服务器接收网络消息。应用在前端运行时就可以了。
但是,当应用程序在后台运行时,应用程序不会收到网络消息。我把它带回 frondend 后,它就开始接收了。
如何让应用在后台运行也能接收网络消息?
谢谢。
【问题讨论】:
标签: iphone cocoa-touch networking background
我有一个 iphone 应用程序从服务器接收网络消息。应用在前端运行时就可以了。
但是,当应用程序在后台运行时,应用程序不会收到网络消息。我把它带回 frondend 后,它就开始接收了。
如何让应用在后台运行也能接收网络消息?
谢谢。
【问题讨论】:
标签: iphone cocoa-touch networking background
您在后台有两个网络连接选项:
推送通知。该应用程序没有运行,但您的服务器可以请求发送通知,该通知随后将发送到 iPhone,提示用户启动您的应用程序,然后该应用程序可以通过常规请求从您的服务器更新自身。
后台网络调用。您的应用可以请求在后台保持线程处于活动状态以完成网络活动。您可以使用它在您的应用关闭时发送请求以与您的服务器签入。
【讨论】:
NSURLRequest 等相同的方式进行操作。
首先查看这个帖子:iphone - Connecting to server in background
其次,具体来说,当您的应用程序在后台并被操作系统冻结时,它将无法访问互联网,因此您的应用程序不会听到任何来自异步请求的回调。
三、一种可能的策略:
【讨论】:
我不是 iphone 开发人员,但对我来说,对于所有后台应用程序,所有网络消息都应该推送到苹果服务器,然后再推送到手机。没有像 Android 那样的服务。
【讨论】: