OGeek|极客世界-中国程序员成长平台

标题: objective-c - 需要 iOS 引用以了解在 sleep 、待机和/或空闲模式下发生的情况 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:45
标题: objective-c - 需要 iOS 引用以了解在 sleep 、待机和/或空闲模式下发生的情况

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

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

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

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

提前致谢。



Best Answer-推荐答案


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

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

“ sleep ”的概念意味着在 iPhone OS 3 和 iOS 4 中,当您的应用失去焦点时(以及当收到短信或警报等)时,您将收到以下方法:

- (void)applicationWillResignActiveUIApplication *)application

确实,大多数应用程序(设计为在后台运行的应用程序除外,例如 voip、音频流等)只是在关闭时退出。但如果需要,您也可以暂停应用卡住并要求更多时间来完成任务。

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

关于objective-c - 需要 iOS 引用以了解在 sleep 、待机和/或空闲模式下发生的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664861/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4