【发布时间】:2011-02-10 08:01:01
【问题描述】:
我正在尝试利用 iPhone 4 的多任务处理功能。我想在后台运行应用程序并经常发送http请求以发送/接收数据,可以吗?
【问题讨论】:
标签: iphone http multitasking
我正在尝试利用 iPhone 4 的多任务处理功能。我想在后台运行应用程序并经常发送http请求以发送/接收数据,可以吗?
【问题讨论】:
标签: iphone http multitasking
令人惊讶的是,在“多任务”iOS 4.x 中实际上很少进行时间切片。相反,实际上只是应用程序挂起/恢复。当用户点击主页按钮后应用程序被发送到后台时,它将在片刻后停止执行周期 (*)。
(*) 有一些例外。声明自己为“VoIP 提供商”的应用程序、基于位置的应用程序和音乐应用程序可以获得后台执行周期,可能只是为了响应相应事件(例如发生“位置的显着变化”)执行那些非常具体的操作。一些应用程序显然试图扩展规则并寻找未记录或未充分记录的技术来继续获得后台执行周期。
而且Undeadlegion提到的“请求运行时间”是有持续时间限制的。
现实情况是,在 iOS4 上,应用程序是不允许在后台连续运行的。
【讨论】:
@Undeadlegion 提出了一种可行的方法来实现您的目标。为了更清楚,请查看我之前对类似问题的回答,iphone - Connecting to server in background
【讨论】:
可以在您的应用程序处于后台时请求运行时间。
见Multitasking Developer's Guide
不过,根据您的 http 请求的意图,推送通知可能是一个可行的替代方案。
这可能是必要的,因为您不提供音频、voip 或定位服务,因此您的应用无法无限期地在后台运行。
【讨论】: