我们的应用不使用默认电子邮件应用程序进行电子邮件发送,而是使用SMTP实施。现在当应用程序处于前台时 - 电子邮件将使用SMTP连接发送。但是说如果我点击发送然后切换到另一个应用程序 - 电子邮件没有被发送。它仅在我们恢复到应用程序时发送。通常我们希望在应用程序处于背景状态时发送电子邮件。欢迎任何提示。聊天应用程序如何轮询新消息 - 如果我们得到任何提示 - 我们也可以完成我们的任务。
答案 0 :(得分:1)
这是一个很好的问题。
根据Apple有关Multi Tasking的文档:
除了上述键,iOS 提供了另外两种工作方式 背景:
任务完成 - 应用程序可以询问 系统有额外的时间来完成 给定的任务。
本地 通知 - 应用程序可以 安排本地通知 在预定的时间交付。
如果您的任务不是长期且连续的任务,例如VOIP服务,GPS服务或音频服务,您可以将其声明为“有限长度任务”,并且您可以在后台完成此任务。请记住,MU仅适用于iOS 4.0,仅适用于3GS和4设备。您还应该为不支持MU的其他设备管理这些任务。
总是根据官方文档,你可以这样做:
您可以使用任务完成来确保 这很重要但可能 长期运营不会结束 当用户离开时突然 应用。 例如,你可以 使用此技术来保存用户数据 到磁盘或完成下载 来自网络服务器的重要文件。 有几种设计模式 你可以用来启动这样的任务:
- 包装任何长期运行的关键任务 同
-[UIApplication beginBackgroundTaskWithExpirationHandler:]
和-[UIApplication endBackgroundTask:]
电话。这个 在情况下保护这些任务 你的申请突然来了 搬到了后台。- 等你的 申请代表
applicationDidEnterBackground:
方法 被召唤并开始一个或多个 然后是任务。
答案 1 :(得分:-3)
Apple对第三方应用程序的要求之一是您无法在后台运行您的应用程序。我认为,您可以通过在您的applicationShouldTerminate方法中返回NO来完成您的任务,但您的应用程序将不会被Apple批准在AppStore中发布。