1

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

我想编写一个应用程序,它在暂停时会在用户按下主页或电源按钮(大概是为了解锁手机)时执行一个动作。我阅读了 iOS App Programming Guide 的App States and Multitasking中的部分,并且“在唤醒时处理排队通知”讨论了在唤醒时处理排队事件。然而,这不是我所追求的。

我想知道是否有可能:

  1. 从手机睡眠状态(我找不到手机状态的文档,所以我说的是用户按下电源按钮关闭屏幕的情况),我希望我的应用程序准备好响应用户按下电源或主页按钮的事件(解锁手机)
  2. 我希望我的应用程序响应用户解锁手机时发生的事件。我在这里找到了一个很接近的答案
  3. 当有电话进来、被忽略等时,我不想要任何时髦。:)

据我所知,这是 API 中围绕锁定和解锁的一个非常灰色的区域,我想验证我是否在浪费时间尝试这样做。

看起来我可以使用加速度计来检测手机何时被锁定,但我也假设在所有未来的 iOS 版本中我都无法指望这种行为。

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

4

1 回答 1

0

您的应用程序被暂停/后台处理的所有行为都在您引用的文档中。AppDelegate 将接收这些消息并将它们传递到您想要收听它们的任何视图。

-applicationWillTerminate
-applicationWillEnterBackground
-applicationDidBecomeActive
-applicationWillResignActive

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

虽然 Apple 文档一开始可能有点模糊,但所有信息都在那里,让您知道您的应用程序将进入哪个状态以及如何处理它。由您决定您的应用程序需要为这些事件中的每一个执行什么操作。希望这可以帮助。

于 2012-06-18T16:15:23.953 回答