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

标签 ios background-foreground

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

  1. 我的应用 (A) 在前台打开
  2. 然后我将另一个应用程序 (B) 带到前台
  3. 然后锁屏

(A) 是否有可能检测到锁?

最佳答案

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

应用实际上有比事件和后台更多的状态。

状态是:

  1. 活跃
  2. 后台(仍在运行,但另一个应用程序在前台)
  3. 挂起(在内存中,但没有获得任何 CPU 时间)
  4. 没有运行。 (不再运行或在内存中。)

当用户切换应用程序、按下主页按钮或锁定他们的设备时,您的应用程序会收到通知它正在进入后台,但它实际上只会在后台运行很短的时间。它几乎立即过渡到暂停状态。一旦你被暂停,你可以随时终止,恕不另行通知。

如果您在收到通知您将被转移到后台时需要更多时间来完成任务,您可以使用 beginBackgroundTaskWithExpirationHandler 调用请求它。但是,在撰写本文时,您最多有 3 分钟的时间,然后您的过期处理程序将触发并且您的应用程序将被暂停。

因此,您实际上不会在后台运行很长时间,并且很可能在用户锁定屏幕(或自动锁定)时您已经暂停并且不会通知。

关于IOS:应用程序进入后台后检测锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34401430/

相关文章:

javascript - 是否可以配置 iOS 原生 HTML5 日期选择器?

ios - 错误 ITMS-9000 : invalid bundle. xyz.app 中的 bundle 不包含 bundle 可执行文件

WPF - 动态修改图像颜色 (C#)

objective-c - iOS:当应用程序返回前台时恢复以前可见的 View ?

algorithm - 空间不变矢量量化

ios - 向应用程序添加反馈功能

ios - 如何加入圆角线

ios - isIdleTimerDisabled 在 iOS 12 中不起作用

iphone - 当应用程序在后台运行时,我们可以获取 iPhone 耳机插孔插入/拔出事件吗?

shell - 当我向后台作业发送 SIGCONT 信号时发生了什么?