如何保留iPhone退出後的狀態。什麼是簡單的方法來做到這一點?退出後保留iPhone應用程序的狀態
回答
第一個問題是你什麼時候節省?答案是在兩個地方(假設你想支持3.x和4.x設備)。
首先,OS 3.x設備(以及OS 4級的設備沒有多任務):
- (void)applicationWillTerminate:(UIApplication *)application
其次,對於OS 4.x的設備:
- (void)applicationDidEnterBackground:(UIApplication *)application
你需要在iOS4設備上這樣做,因爲如果應用程序在後臺關機,它只會被殺死;你永遠不會看到applicationWillTerminate消息。
至於如何,它取決於你的應用程序有多複雜。我創建了我對於可能要保存其狀態的每個視圖控制器實現一個簡單的協議:
@protocol SaveState
- (NSData*) saveState;
- (id) initWithSaveState:(NSData*)data;
@end
它通過視圖控制器在主導航控制器循環和調用保存狀態方法保存的狀態。然後在applicationDidFinishLaunching:方法中做相反的處理。 More information on my blog。
在您的應用程序委託中,您可以定義-applicationWillTerminate:
方法以包含保存應用程序狀態數據的代碼。
- (void) applicationWillTerminate:(UIApplication *)application {
// save state to data model here...
}
您的數據模型取決於您。例如,這可能是一組user defaults或Core Data存儲。
下次啓動應用程序時,您可以檢查-applicationDidFinishLaunching:
中保存的狀態數據並適當地初始化應用程序。
如果您使用的是iOS 4並且您的應用程序支持多任務功能,那麼您將獲得一些免費的狀態保存功能,因爲the app resigns focus而不是終止。
嗨亞歷克斯, Thanks.Let我說,我有四個選項卡,目前我在第一個選項卡,並在第六屏幕,(SIX導航我做了),我怎麼能存儲的信息很容易識別,其中一個下一次用戶打開應用程序時,我應該打開它。我認爲一旦App下次啓動,我將不得不以編程方式遍歷該特定的View?我的假設是否正確? – Krishnan 2010-07-30 10:03:09
正確的是,您保存了用戶停止位置的「樹狀圖」,然後在應用重新啓動時再返回。 – 2010-07-30 10:11:01
- 1. 退出應用程序後保存ImageView狀態(onSaveInstanceState)
- 2. 如何在終止應用程序之前保留iPhone應用程序狀態?
- 3. 應用程序退出後保留用戶名nsstring
- 4. 退出應用程序時保存按鈕的新狀態
- 5. 退出程序的狀態
- 6. 如何在退出應用程序時保持酒吧seekbar,然後再次保留其以前的狀態
- 7. 應用程序退出後保留環境變量
- 8. 退出iphone應用程序
- 9. 退出iPhone應用程序?
- 10. Android應用程序保留狀態後,應用程序從最小化
- 11. 如何在應用程序退出時保存應用程序狀態
- 12. 使用NSWorkspace啓動應用程序後退出狀態launchApplicationAtURL
- 13. 退出時保存應用程序數據狀態
- 14. 如何在退出時輕鬆保持應用程序狀態
- 15. 程序退出狀態
- 16. 信號量在應用程序退出後保持打開狀態
- 17. 退出iphone 4中的應用程序
- 18. 在退出時保留Silverlight應用程序中的值
- 19. 退出應用程序後退按鍵
- 20. 從應用程序內調用並保留應用程序狀態
- 21. 如何在用戶退出應用程序時保存Android CheckBox的狀態?
- 22. 維持iPhone應用程序的狀態
- 23. 通過sed管道輸出,但保留退出狀態
- 24. WP7 PhoneGap應用程序後退按鈕退出應用程序
- 25. AWS上的Node應用程序的Docker退出狀態1
- 26. 如何在應用程序退出時保留剪貼板
- 27. 當按下後退按鈕時保存Android應用程序的狀態
- 28. iPhone - 暫停應用程序退出
- 29. iPhone:當應用程序退出
- 30. 信號11,iphone應用程序退出
謝謝斯蒂芬。這真的幫助了我。如果我遇到任何其他問題,我會盡快回復您。 – Krishnan 2010-07-30 11:31:48