IOS:应用程序进入后台后检测锁定?

时间:2015-12-21 17:40:39

标签: ios background-foreground

有没有办法在应用进入后台后检测锁定?例如,

  1. 我的应用程序(A)在前台打开
  2. 然后我将另一个应用程序(B)带到前台
  3. 然后锁定屏幕
  4. (A)是否可以检测到锁定?

2 个答案:

答案 0 :(得分:2)

答案是“理论上是,但通常不是。”

应用实际上拥有的状态多于活动状态和背景状态。

州是:

  1. 有效
  2. 背景(仍在运行,但另一个应用程序位于前台)
  3. 暂停(在内存中,但没有获得任何CPU时间)
  4. 没有跑步。 (不再跑步或在记忆中。)
  5. 当用户交换应用程序,按下主页按钮或锁定他们的设备时,您的应用程序会收到通知它进入后台的通知,但它实际上只在后台运行非常短时间。它几乎立即过渡到暂停。一旦您被暂停,您可以随时终止,恕不另行通知。

    如果您在收到通知后被移至后台时需要更多时间来完成任务,则可以使用beginBackgroundTaskWithExpirationHandler来电申请。但是,在撰写本文时,您最多只能获得3分钟,然后您的到期处理程序将被触发,您的应用程序将被暂停。

    因此,你实际上并没有在后台运行很长时间,并且可能在用户锁定屏幕时(或者它自动锁定)你已经被暂停并且没有得到通知。

答案 1 :(得分:0)

  

(A)是否可以检测到锁定?

不,有两个原因:

  • 在任何情况下,您都无法检测到屏幕已被锁定。即使您的应用在屏幕锁定时位于最前面,所有了解到您的应用是背景,而无法学习为什么

  • 你的场景中,当屏幕被锁定时,你的应用程序甚至没有运行 - 它已被暂停。所以它无法“检测”任何