【发布时间】:2013-02-19 04:43:55
【问题描述】:
Apple 的 "App States and Multitasking" 文档(“移至后台时要做什么”部分)说应用程序进入后台时保存:
保存用户数据和应用状态信息。所有未保存的更改应在进入后台时写入磁盘。这一步是必要的,因为您的应用程序可能由于多种原因在后台被悄悄杀死。您可以根据需要从后台线程执行此操作。
当我开始分派操作时,例如为了节省在applicationDidEnterBackground: 需要一些时间,如下所示,当按下主页按钮时,我没有得到 NSLog 输出。返回应用后,出现NSLog输出。
- (void)applicationDidEnterBackground:(UIApplication *)application {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self performOperation];
NSLog(@"Operation finished");
});
}
我能否确定performOperation 方法已完全执行,还是在应用进入睡眠模式时中断?
【问题讨论】:
标签: ios multithreading grand-central-dispatch multitasking