2

我是一名新的 ObjC 开发人员,在搜索了 Web 和 Apple 的开发人员文档后,我找不到对各种 iOS 设备模式以及在这些模式下发生的情况的简洁说明。我看到了很多小讨论,但没有关于大局的总体情况。

例如,我看到一些适用于 iPhone/iPad 的警报应用程序声称能够在早上执行警报(可能不仅仅是系统警报)。我很难理解这是怎么发生的,即使用户让应用程序在夜间继续运行,假设设备在不使用后进入睡眠模式。

所以我不知道当设备进入睡眠或待机模式时会发生什么。只是屏幕变暗吗?前台的应用程序是否继续执行代码,进入一些临时状态,例如处于保存状态的后台模式,或者它是否完全(即使是暂时的)关闭?

我只想指向一个网站、一本书或 Apple 文档的一部分,这些文档解释了各种设备状态、iOS 3 和 4 下的应用程序在每个状态下发生了什么,以及如何管理它,如果你想要构建一个类似于“始终开启”的模拟床头闹钟的应用程序等。

提前致谢。

4

2 回答 2

4

这些“警报”是本地通知,非常方便。即使应用程序关闭,甚至设备处于睡眠状态,它们也会被触发。

睡眠的概念并不太棘手;当用户“退出”您的应用程序(按下主页按钮)时,您的应用程序将被暂停并置于冻结状态(4.x),或完全退出(3.x)。- (void)applicationWillTerminate:(UIApplication *)application尽管如此,在后者发生在方法之前,以及在前者发生在- (void)applicationDidEnterBackground:(UIApplication *)application方法之前(两者都在您的委托类上调用),您有机会执行一些清理操作。

'sleep' 的概念意味着在 iPhone OS 3 和 iOS 4 中,当你的应用失去焦点时(以及当 SMS 进来,或警报等时)你会收到以下方法:

- (void)applicationWillResignActive:(UIApplication *)application

实际上,大多数应用程序(除了设计为在后台工作的应用程序,如 voip、音频流等)只是在关闭时退出。但如果您需要,您也可以暂停冻结您的应用程序并要求更多时间来完成任务。

这在 3.x 时代更容易掌握,但现在有了 4.x 的“多任务处理”,它变得有点难了。不过这并不太令人生畏,读一读会有所帮助

于 2011-01-12T03:05:11.403 回答
0

这可能会有所帮助:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html

请参阅 UIApplicationState 的 applicationState。

于 2011-01-12T03:06:13.820 回答