2012-06-07 92 views
0

我有一個應用程序可以將手機上創建的記錄與網絡服務器同步。iOS設備關閉或電池電量耗盡時的狀態

當應用程序沒有互聯網連接時,它會在本地存儲所有內容(核心數據),然後在互聯網再次可用時進行同步。

現在用戶已經想出了一個有效的用戶案例場景......說他在飛機制作記錄(沒有網絡)......所以一切都在本地存儲。一切都很好,直到空姐指示他關掉電話。如果在應用程序中,他會立即關閉。現在數據正在迷失。當應用程序進入後臺或手機鎖定時,我正在保存狀態。但我該如何保證?

當用戶關閉手機(長按鎖定按鈕)時,他們仍然需要滑動條,設備需要一段時間才能關閉...所以有一段時間我可以將狀態保存在......在此期間調用委託方法?

回答

3

您的應用將按照該順序獲取applicationWillResignActive,applicationDidEnterBackground,applicationWillTerminate調用。

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW3

您可以使用applicationWillTerminate作爲線索保存的東西。

但是,確保您的數據是隨時隨地保存而不僅僅是在這些情況下標準的良好做法 - 如果您的用戶輸入了大量的數據和數據,然後您的應用程序崩潰,那麼數據將會迷路了。

我對Core Data不是很熟悉,但肯定它必須具有原子保存能力。