iOS4.0以后系统支持多任务类型,程序按下home键后,程序进入后台运行,如果内存不足被系统关闭或者手动关闭,都不会调用applicationWillTerminate回调函数。
解决方法:可以在程序进入后台时,添加一后台运行通知函数,也就是程序进入后台一段时间内,程序还在运行,并可以响应一些消息。代码如下:
- (void)applicationDidEnterBackground:(UIApplication*)application
{
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(){
//iOS7 以后在后台大概能够运行3分钟,iOS7 以前大概能够运行10分钟,注意后台任务结束后需要执行 endBackgroundTaskNSLog(@"程序关闭");
}];
}