2011-03-15 43 views
1

當我需要爲iPhone應用程序保存狀態時,我有點困惑。特別是對於Iphone IOS版本支持多任務處理的場景,以及當你回到它時,它似乎處於相同的狀態(無論如何我的簡單應用)。是否有必要爲IOS 4.0多任務支持場景保存狀態?

問題 - 您能否闡明「需要爲iPhone應用程序保存狀態」以及多任務支持一起玩。

希望的響應,有助於澄清如幾個方面:

  1. 對於多任務的支持情況(當用戶沒有明確終止應用程序),是否有任何需要都保存狀態?還是IOS爲你做(它看起來它適用於我的簡單應用程序)。

  2. 如果答案是1,那麼在什麼時候你真的需要保存狀態呢?

  3. 如果1的答案爲否,那麼當IOS確實讓應用程序在後臺「運行」時,您確切地知道丟失哪些數據/狀態而不是丟失?

感謝

+1

保存狀態**只要你可以**。 – BoltClock 2011-03-15 21:29:48

回答

2

1A。是。因爲...

1B。你不知道。操作系統通常會在新設備上保存狀態,但這並不能保證,並不總是會發生。在較舊的設備上,操作系統不會保存狀態。

2A。即使答案是1B。是YES,操作系統仍然可以刪除您的應用程序的狀態以節省內存。因此,在您的應用程序被暫停後,您仍然需要保存任何您不想丟失的狀態。

3A。如果它不檢查簡歷上的時鐘,你的應用程序可能會失去跟蹤時間(來自NSTimer滴答等)。

2

所有你所要做的支持多任務是編譯針對4.0或更高。

您應該將應用程序數據保存到文件中,但IOS會將所有視圖和視圖控制器保存在內存中,並在應用程序切換回來時繼續其停止的位置。

請記住,當您的應用程序在後臺時,IOS可以在任何時候完全終止它,試圖重新聲明內存,以確保您的用戶數據是持久的。

+2

由於iOS可以在內存中將應用程序從後臺彈出,因此從不保存狀態意味着_sometimes_它會像按住home按鈕時那樣恢復,有時不會。這可能會讓人困惑。當您的應用進入後臺時,最好保存狀態。 – 2011-03-15 22:21:35

2

正常情況下,多任務應用程序會繼續運行,並且不需要顯式地保存應用程序的狀態。但是,如果手機內存不足,可能會決定在應用程序處於後臺模式時轉儲它。

對於沒有背景模式的手機(例如3G),您總是需要保存狀態。

底線,你會想要保存狀態,每當進入後臺,以後的應用程序從內存中刪除的事件。你只需要在重新啓動時閱讀它,而不是從後臺返回。

至於「什麼狀態」需要保存,它實際上取決於您的特定應用程序。也許選定的標籤或導航?很多取決於用戶期望不會丟失任何工作。