iOS4.0以后系统支持多任务类型,程序按下home键后,程序进入后台运行,如果内存不足被系统关闭或者手动关闭,都不会调用applicationWillTerminate回调函数。

解决方法:可以在程序进入后台时,添加一后台运行通知函数,也就是程序进入后台一段时间内,程序还在运行,并可以响应一些消息。代码如下:

- (void)applicationDidEnterBackground:(UIApplication *)application

{

    [[UIApplicationsharedApplication]beginBackgroundTaskWithExpirationHandler:^(){

       //程序在10分钟内未被系统关闭或者强制关闭,则程序会调用此代码块,可以在这里做一些保存或者清理工作

        NSLog(@"程序关闭");

    }];

}

 

添加此段代码后,程序进入后台10分钟内会响应 applicationWillTerminate 函数,可以在其中添加保存或者清理工作。