锁定屏幕后iPad应用程序变为非活动状

时间:2012-05-08 06:30:49

标签: ios ipad background screen-lock

在我的应用程序中,我使用NSOperation在一个单独的线程上下载和上传数据。两个过程都需要大约。 2-3分钟如果应用程序仍然有效,那么一切正常。但是,如果iPad屏幕被锁定(自动或手动),则应用程序变为非活动状态,下载/上传暂停,并且在一段时间过程失败并且超时错误后屏幕解锁。

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

请帮我解决出错的问题。

1 个答案:

答案 0 :(得分:7)

屏幕锁定后,您的应用将变为无效状态。 iOS App编程指南中的每"Responding to Interruptions"

  

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

根据同一指南中的"Executing a Finite-Length Task in the Background",您可以为后台任务获得额外的时间:

  

转换到后台的应用可以请求额外的时间来完成任何重要的最后一分钟任务。要请求后台执行时间,请调用UIApplication类的beginBackgroundTaskWithExpirationHandler:方法。如果您的应用在任务正在进行时移至后台,或者您的应用已在后台,则此方法会延迟暂停您的应用。如果您的应用执行某项重要任务(例如将用户数据写入磁盘或从网络服务器下载重要文件),这一点非常重要。

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

其他参考资料: