如何保留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. 应用程序退出后保留用户名nsstring
- 2. 如何在终止应用程序之前保留iPhone应用程序状态?
- 3. 应用程序退出后保留环境变量
- 4. 如何在应用程序退出时保存应用程序状态
- 5. 使用NSWorkspace启动应用程序后退出状态launchApplicationAtURL
- 6. 退出iPhone应用程序?
- 7. 退出iphone应用程序
- 8. 如何在退出时轻松保持应用程序状态
- 9. 程序退出状态
- 10. 在退出时保留Silverlight应用程序中的值
- 11. 退出应用程序后退按键
- 12. 退出iphone 4中的应用程序
- 13. 通过sed管道输出,但保留退出状态
- 14. 如何在用户退出应用程序时保存Android CheckBox的状态?
- 15. 当按下后退按钮时保存Android应用程序的状态
- 16. 维持iPhone应用程序的状态
- 17. 从最近的应用程序列表中滑动后保留活动状态?
- 18. 观察osx应用程序的状态(开启,退出)
- 19. 当退出iPhone应用程序时,黑色状态栏变成白色
- 20. iPhone:当应用程序退出
- 21. 信号11,iphone应用程序退出
- 22. 在Android上保留游戏状态OpenGL ES应用程序
- 23. 跨重新启动保留ASP.NET应用程序状态
- 24. 在重新启动时保留应用程序状态
- 25. 浏览器后退按钮和状态保留?
- 26. 如何在用户点击退出后重置iOS应用程序状态?
- 27. “程序已退出状态101”
- 28. Xcode 7+重新编译后有没有办法保留应用程序状态
- 29. 应用程序退出后的操作?
- 30. 应用主题后Android保存应用程序状态
谢谢斯蒂芬。这真的帮助了我。如果我遇到任何其他问题,我会尽快回复您。 – Krishnan 2010-07-30 11:31:48