2013-03-08 170 views
2

我有一个可以大量使用视频的应用程序。在典型的使用案例中,我会将iPad连接到外部显示器。我只想要打开外部显示器; iPad显示屏不需要保持。保持iOS应用程序锁定时应用程序运行?

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

我想让用户选择锁定iPad,但仍然让我的应用程序运行并将图像发送到影像输出。 (注意:我不是在讨论让应用程序在不在前台时运行,我只是希望它在前台运行,但设备已锁定。)

这可能吗?

回答

4

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

docs读:

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

上面的文档中有一点值得注意的是,在“中断发生时要做什么”一段时间后,Apple建议您停止执行某些任务。

为了应对这种变化,你的应用程序应该做在applicationWillResignActive:方法如下:

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

这告诉我,苹果不希望或者期待您的应用程序做更多的事情在这种状态下,其他比准备充分背景。

在这里与此相关的是一个线程,显示了如何确定您是否已经打了睡眠/唤醒按钮或不:

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