2011-07-25 43 views
0

我正在編寫一個實用程序,其中游戲的數據在整個遊戲的各個階段(包括但不依賴於應用程序退出時)寫入磁盤。我的問題是目前我正在使用application:didFinishLaunchingWithOptions:進行初始加載,但對應用程序進入後臺/掛起時發生的情況感到好奇等等。目前,我假設所有加載的數據都會停留在周圍,我只需要執行加載當應用程序最初加載時。是這樣的情況下,或者可以iOS刷新我存儲的數據,我應該看看檢查是否需要加載負載applicationWillEnterForeground:加載數據和多任務?

也是它的一個相當小的數據量(20小NSArray對象),但我想我可以隨時保存並清除數據存儲當我得到applicationDidEnterBackground:並重新加載applicationWillEnterForeground:或者考慮到它只是一小部分的數據我會更好,只是讓它駐留在任何時候?

回答

1

保存狀態,當你得到applicationWillResignActive:

,當你去到背景中,或打個電話,或者發生了其他幾個中斷髮生。這是一個比applicationDidEnterBackground更好的地方:因爲它不會在運行iOS 4.0之前的設備中調用(如果你支持ios < 4,那麼這個設備纔會被調用)。

一旦您的應用進入後臺或被中斷,它可能會在沒有任何警告的情況下死亡,所以這是您最後一次保存/刷新狀態數據的絕對機會。

當您返回前臺時,無需重新加載數據。如果發生這種情況,你的應用程序仍然在內存中,其數據仍然在那裏(除了可能視圖可能已被卸載)

+0

完美的是,最後關於數據被卸載(像視圖可以)或停留在內存中的位是我所追求的。在iOS4設備之前,applicationWillResignActive也是一個很好的建議。 – fuzzygoat

1

我建議您在應用移動到背景時始終保存您的內存數據。在後臺時,iOS可能會在您的應用程序需要內存時終止,並且在發生這種情況時您不會收到通知。

+0

好的,謝謝,至於加載去我不需要檢查當我退出背景(因爲應用程序沒有終止,應用程序數據仍然在內存中),只是當應用程序加載時,最初或在系統終止之後? - – fuzzygoat