我正在运行某个任务,UIBackgroundTaskIdentifier
因为我想在后台运行它。我的代码看起来像这样。
-(void) function
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
UIBackgroundTaskIdentifier BGIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{}];
// some processing
dispatch_async(dispatch_get_main_queue(), ^{
// some UI stuff
});
// some processing again
dispatch_async(dispatch_get_main_queue(), ^{
// some UI stuff again
});
[[UIApplication sharedApplication] endBackgroundTask:BGIdentifier];
});
}
所以我有两个问题。
- 如果我的应用程序在进行某些处理时进入后台,对主队列的 dispatch_async 调用会发生什么?
- 这是一个好的设计吗?