2011-01-12 25 views
2

我是新的ObjC開發人員,在搜索Web和Apple的開發人員文檔後,找不到各種iOS設備模式的簡潔說明,以及在這些模式下發生了什麼。我看到很多小小的討論,但沒有什麼總體的大局。需要iOS參考,瞭解在睡眠,待機和/或空閒模式下會發生什麼

例如,我看到iPhone/iPad的某些鬧鐘應用聲稱能夠在早上執行鬧鐘(大概不僅僅是系統提醒)。即使用戶讓應用程序在一夜之間繼續運行,我仍然很難理解這種情況,假設設備在不使用後進入睡眠模式。

所以我不知道當設備進入睡眠或待機模式時會發生什麼。它只是屏幕變暗?前臺應用程序是否繼續執行代碼,在保存狀態下進入某種臨時狀態(如後臺模式),還是完全(即使暫時)關閉?

我只想指出一個網站,一本書或Apple文檔的一部分,它解釋了各種設備狀態,iOS 3的每個狀態下的應用程序發生了什麼,以及如何管理,如果你想建立一個類似模擬牀頭鬧鐘「永遠在線」的應用程序等。

在此先感謝。

回答

4

這些'警報'是本地通知,非常方便。即使應用程序關閉,即使設備處於睡眠狀態,它們也會被解僱。

睡着的概念不是太棘手;當用戶「退出」你的應用程序時(按回家按鈕),你的應用程序將被暫停並置於凍結狀態(4.x),或完全退出(3.x)。儘管如此,在後者發生在- (void)applicationWillTerminate:(UIApplication *)application方法之前,並且在- (void)applicationDidEnterBackground:(UIApplication *)application方法發生前(都在您的委託類中被調用)之前,您有機會做一些清理操作。

「睡眠」的概念意味着兩個iPhone OS 3和iOS 4,當你的應用程序失去焦點,你會收到以下方法(也當短信進來,或警告等):

- (void)applicationWillResignActive:(UIApplication *)application 

真的,大多數應用程序(除了設計爲在後臺工作的應用程序,例如voip,音頻流等)都可以簡單地關閉。但是,如果您需要,也可以暫停應用程序的凍結並要求更多時間來完成任務。

這在3.x天更容易掌握,但現在隨着4.x的「多任務」,它變得有點困難。雖然這不是太令人生畏,並且讀了this will help a bit

+0

謝謝,艾倫。發生什麼?當設備被單獨放置直到屏幕變暗時,當前運行的應用程序會進入什麼狀態? (我想,設備本身處於什麼狀態?) – Gregir 2011-01-12 03:44:55

+0

當屏幕變暗時,應用程序正常運行。唯一的區別是第一次觸摸會使屏幕變亮並被忽略。如果用戶離開設備直到它進入睡眠狀態,應用程序將發送applicationWillResignActive:方法。 – ughoavgfhw 2011-01-12 06:17:07

相關問題