1

在我的应用程序中,我在某个时间点使用NSOperation. 这两个过程大约需要。2-3 分钟。如果应用程序保持活动状态,那么一切正常。但是,如果 iPad 屏幕被锁定(自动或手动),应用程序将变为非活动状态,下载/上传会暂停,并且当屏幕在一段时间后解锁时,进程因超时错误而失败。

我在 plist 文件中有“所需背景模式”的“应用程序播放音频”。屏幕锁定时,我是否需要为运行应用程序设置任何其他标志?

请帮助我出了什么问题。

4

1 回答 1

8

当屏幕锁定时,您的应用程序将变为非活动状态。根据iOS App Programming Guide 中的“响应中断” :

按下睡眠/唤醒按钮是另一种类型的中断,它会导致您的应用程序暂时停用。当用户按下此按钮时,系统禁用触摸事件,将应用程序移至后台,但将应用程序的 applicationState 属性的值设置为UIApplicationStateInactive(而不是UIApplicationStateBackground),最后锁定屏幕。

根据同一指南中的“在后台执行有限长度任务” ,您可以获得额外的后台任务时间:

正在过渡到后台的应用程序可以请求额外的时间来完成任何重要的最后一分钟任务。要请求后台执行时间,请调用该类的beginBackgroundTaskWithExpirationHandler:方法UIApplication。如果您的应用在任务进行时移动到后台,或者如果您的应用已经在后台,则此方法会延迟您的应用暂停。如果您的应用程序正在执行一些重要任务,例如将用户数据写入磁盘或从网络服务器下载重要文件,这可能很重要。

您可以参考文档在后台实现一个有限长度的下载任务。

其他参考:

于 2012-05-08T06:44:01.423 回答