Ios iPad应用程序在锁定屏幕后变为非活动状态
在我的应用程序中,我在某个时间点使用Ios iPad应用程序在锁定屏幕后变为非活动状态,ios,ipad,background,screen-lock,Ios,Ipad,Background,Screen Lock,在我的应用程序中,我在某个时间点使用NSOperation在单独的线程上下载和上载数据。这两个过程都需要大约2-3分钟。如果应用程序仍处于活动状态,则一切正常。但如果iPad屏幕被锁定(自动或手动),应用程序将变为非活动状态,下载/上传将暂停,并且当屏幕在一段时间后解锁时,进程会因超时错误而失败 我有plist文件中“应用程序播放音频”的“所需背景模式”。当屏幕被锁定时,我是否需要为运行应用程序设置任何其他标志 请帮助我出了什么问题。当屏幕被锁定时,您的应用程序将处于非活动状态。根据iOS应用程
NSOperation
在单独的线程上下载和上载数据。这两个过程都需要大约2-3分钟。如果应用程序仍处于活动状态,则一切正常。但如果iPad屏幕被锁定(自动或手动),应用程序将变为非活动状态,下载/上传将暂停,并且当屏幕在一段时间后解锁时,进程会因超时错误而失败
我有plist文件中“应用程序播放音频”的“所需背景模式”。当屏幕被锁定时,我是否需要为运行应用程序设置任何其他标志
请帮助我出了什么问题。当屏幕被锁定时,您的应用程序将处于非活动状态。根据iOS应用程序编程指南: 按下“睡眠/唤醒”按钮是另一种导致应用程序暂时停用的中断。当用户按下此按钮时,系统禁用触摸事件,将应用程序移动到后台,但将应用程序的applicationState属性值设置为
UIApplicationStateInactive
(与UIApplicationStateBackground
)并最终锁定屏幕
根据同一指南,您可以获得额外的后台任务时间:
正在过渡到后台的应用程序可以请求额外的时间来完成任何重要的最后一分钟任务。要请求后台执行时间,请调用UIApplication
类的方法。如果您的应用程序在任务进行时移动到后台,或者您的应用程序已经在后台,此方法会延迟应用程序的暂停。如果您的应用程序正在执行某些重要任务,例如将用户数据写入磁盘或从网络服务器下载重要文件,则这一点非常重要
您可以参考文档在后台实现有限长度下载任务
其他参考资料:
UIApplicationStateInactive
(与UIApplicationStateBackground
)并最终锁定屏幕
根据同一指南,您可以获得额外的后台任务时间:
正在过渡到后台的应用程序可以请求额外的时间来完成任何重要的最后一分钟任务。要请求后台执行时间,请调用UIApplication
类的方法。如果您的应用程序在任务进行时移动到后台,或者您的应用程序已经在后台,此方法会延迟应用程序的暂停。如果您的应用程序正在执行某些重要任务,例如将用户数据写入磁盘或从网络服务器下载重要文件,则这一点非常重要
您可以参考文档在后台实现有限长度下载任务
其他参考资料: