当iPhone被锁定并且用户按下电源按钮时编程背景行为

时间:2012-06-18 15:54:25

标签: iphone ios

对不起,我是iPhone开发的新手,我的谷歌搜索失败了,所以我不得不求助于在SO上发布一个潜在的愚蠢问题。

我想写一个应用程序,当用户按下主页或电源按钮(可能是为了解锁手机)时暂停时会执行操作。我阅读了iOS应用程序编程指南App States and Multitasking中的部分和“唤醒时处理排队通知”部分讨论了唤醒时处理排队事件的问题。但是,这不是我追求的目标。

我想知道是否可以:

  1. 从手机睡眠状态(我找不到手机状态的文件,所以我说的是用户按下电源按钮关闭屏幕的情况),我希望我的应用程序准备好响应用户按下电源或主页按钮(解锁手机)的事件
  2. 我希望我的应用能够响应用户解锁手机时发生的事件。我找到了answer here that's close
  3. 当电话进来,被忽略等时,我不想要任何琐事。)
  4. 据我所知,这是关于锁定和解锁的API中的一个非常灰色的区域,我想验证我是否在浪费时间尝试这样做。

    看起来我可以use the accelerometer to detect when the phone is locked,但我也假设我将无法在未来的所有iOS版本中依赖此行为。

    编辑 - 我认为我可以通过假设应用程序必须在手机锁定和解锁时运行来处理锁定和解锁要求,但我仍然无法弄清楚是否可以确定上面的#1,这是按下电源按钮并显示解锁屏幕。同样,我想知道电源按钮是否再次按 并且不再显示(即屏幕关闭)。

1 个答案:

答案 0 :(得分:0)

您的应用暂停/落后的所有行为都在您引用的文档中。 AppDelegate将接收这些消息并将它们传递给您想要监听的任何视图。

-applicationWillTerminate
-applicationWillEnterBackground
-applicationDidBecomeActive
-applicationWillResignActive

如果您希望视图通知任何这些事件,您可以在视图中设置通知观察者。然后只需覆盖它们或设置自定义方法来完成需要完成的任何工作。

虽然Apple文档最初可能有点模糊,但所有信息都在那里,让您知道您的应用将进入哪个州以及如何处理。由您决定应用程序需要为每个事件做些什么。希望这会有所帮助。