在iOS设备锁定时保持应用运行?

时间:2013-03-08 23:50:44

标签: ios

我有一个大量使用视频的应用。在典型的用例中,我将iPad连接到外部显示器。我只想打开外接显示器; iPad显示屏无需继续使用。

理想情况是有人连接到外接显示器,然后锁定他们的iPad。但这会暂停我的应用程序。 (目前,我正在调用setIdleTimerDisabled以防止iPad锁定并暂停我的应用。)

我想让用户选择锁定iPad,但仍然可以运行我的应用并将图像发送到视频中。 (注意:我不是在讨论当应用程序不在前台时保持我的应用程序运行。我只是想让它在前台运行时继续运行,但设备已被锁定。)

这可能吗?

1 个答案:

答案 0 :(得分:4)

我会说不,这是不可能的。原因如下:

docs读取:

  

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

在上面的文档中需要注意的一点是,在“发生中断时该怎么做”下面,Apple建议您停止执行某些任务。

  

为了响应此更改,您的应用应在其applicationWillResignActive:方法中执行以下操作:

     
      
  • 停止计时器和其他定期任务。
  •   
  • 停止正在运行的元数据查询。
  •   
  • 不要发起任何新任务。
  •   
  • 暂停播放动画(通过AirPlay播放时除外)。
  •   
  • 如果您的应用是游戏,则进入暂停状态。
  •   
  • 重新调整OpenGL ES帧速率。
  •   
  • 暂停执行非关键代码的任何调度队列或操作队列。 (您可以在不活动时继续处理网络请求和其他时间敏感的后台任务。)
  •   

这告诉我Apple不希望或期望你的应用在这种状态下做很多事情,除了准备完全落后。

在相关说明中,这是一个线程,显示如何确定您是否已按下“睡眠/唤醒”按钮:

Is it possible to distinguish between locking the device and sending an app to background?