应用程序暂停时如何在 iPhone 上获取屏幕锁定/解锁事件?
Posted
技术标签:
【中文标题】应用程序暂停时如何在 iPhone 上获取屏幕锁定/解锁事件?【英文标题】:How to get screen lock/unlock events on the iPhone when app is suspended? 【发布时间】:2016-07-07 10:58:58 【问题描述】:我有一个要求,我需要跟踪 iphone 设备状态,例如设备是否被锁定或解锁。当应用程序在前台或后台运行时,我能够跟踪这些事件。但是当应用程序被暂停时,我也需要跟踪它。类似于在应用程序暂停时在后台跟踪用户位置。但我不需要跟踪用户位置,只需要跟踪设备状态。
请建议我在objective-c中解决此问题的一些步骤。提前致谢。
【问题讨论】:
【参考方案1】:一旦您的应用处于挂起状态,您将无法执行任何操作,并且您无法阻止您的应用暂停,除非您使用此apple doc 中提到的后台功能模式之一
因此,如果您不使用 Apple 允许的任何一种后台模式,则您正在寻找的内容是不可能的。
编辑
即使您继续启用一种背景模式(如背景音频),您的应用也可能在审核过程中被拒绝,因为审核者会发现您没有正当理由使用该特定背景模式。
【讨论】:
那么,如果我启用像后台获取这样的后台模式是可能的吗?如果可以,请指导我如何做到这一点? 后台获取也不会让您永久保持活动状态,操作系统会定期调用它。 @user3584797 :我添加了更多信息,说明如果您没有任何实际需要的功能,为什么不能使用后台模式 感谢您的编辑...但如果我使用后台提取,操作系统将定期调用该应用程序。那么,在这种情况下,我可以获得有关设备状态的所需详细信息吗? 是的,您应该可以,但后台获取是为了从服务器下载更新的数据,以便应用可以在用户打开应用时立即显示更新的内容。因此,您可能再次面临被拒绝的机会,但它可能会奏效。您也无法控制何时完成后台提取。以上是关于应用程序暂停时如何在 iPhone 上获取屏幕锁定/解锁事件?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone iOS如何在应用程序从后台恢复时添加密码/密码锁定屏幕?