Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在ios4中执行网络后台_Iphone_Objective C_Cocoa_Cocoa Touch_Iphone Sdk 3.0 - Fatal编程技术网

Iphone 如何在ios4中执行网络后台

Iphone 如何在ios4中执行网络后台,iphone,objective-c,cocoa,cocoa-touch,iphone-sdk-3.0,Iphone,Objective C,Cocoa,Cocoa Touch,Iphone Sdk 3.0,我们的应用程序不使用默认的电子邮件应用程序发送电子邮件,而是使用SMTP实现。现在,当应用程序位于前台时,电子邮件将使用SMTP连接发送。但是,如果我点击send,然后切换到另一个应用程序,电子邮件就不会被发送。只有当我们恢复到应用程序时才会发送。通常,我们希望在应用程序处于后台时发送电子邮件。欢迎任何提示。聊天应用程序如何轮询新消息?如果我们得到任何关于这方面的提示,我们也可以完成我们的任务。苹果对第三方应用程序的要求之一是,你不能在后台运行你的应用程序。我认为,您可以通过在应用程序的shou

我们的应用程序不使用默认的电子邮件应用程序发送电子邮件,而是使用SMTP实现。现在,当应用程序位于前台时,电子邮件将使用SMTP连接发送。但是,如果我点击send,然后切换到另一个应用程序,电子邮件就不会被发送。只有当我们恢复到应用程序时才会发送。通常,我们希望在应用程序处于后台时发送电子邮件。欢迎任何提示。聊天应用程序如何轮询新消息?如果我们得到任何关于这方面的提示,我们也可以完成我们的任务。

苹果对第三方应用程序的要求之一是,你不能在后台运行你的应用程序。我认为,您可以通过在应用程序的shouldTerminate方法中返回NO来完成任务,但您的应用程序将不会被苹果批准发布到AppStore中。

这是一个好问题

根据苹果关于多任务的文档:

除了前面的键,iOS 提供了在中执行工作的其他两种方法 背景:

任务完成-应用程序可以询问 系统需要额外的时间来完成 给定任务。
本地 通知-应用程序可以 将本地通知安排为 在预定的时间交付

如果您的任务不是长且连续的任务,例如VOIP服务、GPS服务或音频服务,则可以将其声明为“有限长度任务”,并可以在后台完成此任务。请记住,MU仅在iOS 4.0中可用,并且仅适用于3GS和4设备。您还应该为不支持MU的其他设备管理这些任务

始终根据官方文件,您可以这样做:

您可以使用任务完成来确保 这一点很重要,但很有潜力 长期运行的操作不会结束 当用户离开 应用程序例如,您可以 使用此技术保存用户数据 磁盘或完成下载 来自网络服务器的重要文件。 有两种设计模式 您可以使用启动此类任务:

  • 包装任何长期运行的关键任务 具有
    -[UIApplication beginBackgroundTaskWithExpirationHandler:]
    -[UIApplication endBackgroundTask:
    调用。这 在紧急情况下保护这些任务 您的应用程序突然停止 移到背景
  • 等你的 应用程序代理的
    应用程序标识符背景:
    方法 被调用并启动一个或多个 然后是任务

一般来说,你不能在后台运行,但是问题是当应用程序退出时完成一些你可以完成的事情,这叫做“任务完成”。在
beginBackgroundTask…
endBackgroundTask:
中包装的任务可以在后台继续执行大约10分钟。应该足够完成一个小的下载和类似的。