iphone - 在后台连接到服务器

Sat*_*yam 8 iphone networking background

我正在创建一个连接到服务器并发送一些文本的应用程序.如果有网络(wifi或3g),它会立即将文本发送到服务器.但是如果没有网络,它会每隔5分钟继续轮询服务器连接.这部分工作正常.

但是当使用iPhone 4设备时,即使应用程序进入后台,我也希望应用程序检查服务器连接.因此,当应用程序进入后台并且当网络返回时,它必须能够将文本发送到服务器.

我怎样才能实现它?我见过一些应用程序,他们说即使在后台,应用程序也会将照片上传到服务器.他们将如何做到这一点?

Di *_* Wu 14

我建议你仔细阅读Apple的这篇文章,特别是在背景部分完成有限长度任务.

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

要澄清一下:

  • 一旦您的应用程序在后台并被操作系统冻结,您的应用程序就无法自行唤醒并重新连接到互联网.
  • 但是,根据Apple的上述文章,您可以从应用程序的委托中调用此beginBackgroundTaskWithExpirationHandler方法,以便在放入后台时申请额外的时间,也就是说,虽然您的应用程序在后台时无法自行唤醒,但可以,当在后台并且没有冻结时,尝试申请额外的时间来完成其冗长的任务.

希望能帮助到你.


kth*_*rat 1

在 Xcode 中创建一个新项目,您将看到应用程序委托文件中自动生成了一堆新方法。如 applicationDidEnterBackground、applicationWillEnterForeground 等。

阅读您必须调用线程以在服务器上上传数据的说明。