需要iOS参考,以了解在睡眠,待机和/或空闲模式下发生的情况

时间:2011-01-12 02:36:46

标签: objective-c ios device sleep python-idle

我是一个新的ObjC开发人员,在搜索了Web和Apple的开发人员文档之后,我找不到各种iOS设备模式的简洁解释,以及这些模式中发生了什么。我看到很多小讨论,但没有任何关于大局的总体看法。

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

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

我只想指出一个网站,一本书或Apple文档的一部分,它解释了各种设备状态,在iOS 3和iOS下发生了什么。 4,每个州的应用程序,以及如果你想构建一个类似于“永远在线”的模拟床边闹钟的应用程序,如何管理

提前致谢。

2 个答案:

答案 0 :(得分:4)

这些“闹钟”是本地通知,非常方便。即使应用程序关闭,即使设备处于睡眠状态,它们也会被解雇。

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

“睡眠”的概念意味着在iPhone OS 3和iOS 4中,当您的应用程序失去焦点时(以及当SMS进入或发出警报等)时,您将收到以下方法:

- (void)applicationWillResignActive:(UIApplication *)application

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

这在3.x天内更容易掌握,但现在有了4.x的“多任务处理”,它变得有点困难。但这并不是太令人生畏,而是阅读this will help a bit

答案 1 :(得分:0)

这可能会有所帮助:

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

请参阅UIApplicationState的applicationState。