Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPad应用程序在锁定屏幕后变为非活动状态_Ios_Ipad_Background_Screen Lock - Fatal编程技术网

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
类的方法。如果您的应用程序在任务进行时移动到后台,或者您的应用程序已经在后台,此方法会延迟应用程序的暂停。如果您的应用程序正在执行某些重要任务,例如将用户数据写入磁盘或从网络服务器下载重要文件,则这一点非常重要

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

其他参考资料:


当屏幕被锁定时,您的应用程序将处于非活动状态。根据iOS应用程序编程指南:

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

根据同一指南,您可以获得额外的后台任务时间:

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

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

其他参考资料:


感谢您的回复。您的答案很完美,但如果用户按下home按钮并将应用程序发送到bacground,则beginBackgroundTaskWithExpirationHandler:应该会出现。为什么锁屏也这样做?当屏幕被锁定时,应用程序不是保持在活动状态吗?不,不是。请参阅《iOS应用程序编程指南》中的“响应中断”,网址为。它说,“按下睡眠/唤醒按钮是另一种类型的中断,会导致您的应用程序暂时停用……将应用程序移到后台……并最终锁定屏幕。”我的应用程序过去可以工作(下载/上传),如果在我使用iOS 4.X构建时屏幕被锁定,但在我使用iOS 5构建后屏幕停止:(你是对的。在iOS 4上,只有当屏幕被锁定时,应用程序才会进入非活动状态,但如果按下“主页”按钮,应用程序会移到后台。在iOS 5上,当屏幕被锁定时,应用程序也会移到后台。感谢您的回复。您的答案很完美,但beginBackgroundTaskWithExpirationHandler:应该会出现如果用户按下home(主页)按钮并将应用程序发送到bacground(地面)。为什么锁定屏幕也会这样做?当屏幕被锁定时,应用程序不是保持活动状态吗?不,不是。请参阅iOS应用程序编程指南中的“响应中断”。它说“按下“睡眠/唤醒”按钮是另一种类型的中断,会导致您的应用程序暂时停用……将应用程序移动到后台……并最终锁定屏幕。”我的应用程序以前可以工作(下载/上载),如果在我使用iOS 4.X构建时屏幕被锁定,但在我使用iOS 5构建后屏幕停止:(你说得对。在iOS 4上,只有当屏幕被锁定时,应用才会进入非活动状态,但如果按下home(主页)按钮,应用才会移到后台。在iOS 5上,当屏幕被锁定时,应用也会移到后台。