Apple 的“应用程序状态和多任务处理”文档(“移至后台时的操作”一节)说,当应用程序进入后台时进行保存:
保存用户数据和应用状态信息。进入后台时,所有未保存的更改都应写入磁盘。这一步是必要的,因为您的应用程序可能会由于多种原因在后台被悄悄杀死。您可以根据需要从后台线程执行此操作。
当我开始调度操作时,例如保存需要一些时间,applicationDidEnterBackground:
如下所示,按下主页按钮时我没有得到 NSLog 输出。返回应用程序后,会出现 NSLog 输出。
- (void)applicationDidEnterBackground:(UIApplication *)application {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self performOperation];
NSLog(@"Operation finished");
});
}
我可以确定该performOperation
方法已完全执行还是在应用程序进入睡眠模式时中断?