使用applicationWillTerminate方法似乎不起作用

时间:2010-10-29 17:03:38

标签: iphone uiapplicationdelegate savestate

我想在用户退出应用时保存一些应用状态数据。我在想我应该在appDelegate中使用applicationWillTerminate方法,但当我尝试在那里做任何事情时,它没有做任何事情:

- (void) applicationWillTerminate:(UIApplication *)application {
NSLog(@"test");
 }

当我运行我的应用程序并执行某些操作,然后点击主页按钮退出应用程序时,控制台上没有任何内容......

我是否必须在appDelegate中实现applicationWillTerminate方法?我的应用程序的用户很可能在他们离开时处于阅读器视图中,无论如何实现应用程序将关闭方法吗?

2 个答案:

答案 0 :(得分:2)

请参阅此链接iPhone simulator and applicationWillTerminate()以获取较旧的iOS版本;

但请记住,Home按钮不一定会终止应用程序ios4 ...您应该使用applicationDidEnterBackground,但会建议applicationWillTerminateapplicationDidEnterBackground

这两个地方

UIApplicationExitsOnSuspend密钥添加到应用程序的Info.plist文件并将其值设置为YES将使您在点击主页按钮时退出应用程序,即使在iOS4上也是如此

答案 1 :(得分:2)

在iOS 4中,只有在您退出后台执行模型时才会调用applicationWillTerminate:方法。在标准的iOS 4应用程序生命周期中,按下主页按钮时应用程序将暂停(不终止)。您的应用程序代理将收到applicationWillResignActive:消息,后跟applicationDidEnterBackground:消息。 applicationDidEnterBackground:方法是保存用户数据的好地方。