【发布时间】:2012-07-26 02:28:36
【问题描述】:
如何在iphone中设置应用程序在后台运行??
【问题讨论】:
标签: iphone background
如何在iphone中设置应用程序在后台运行??
【问题讨论】:
标签: iphone background
参考以下代码。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication* app = [UIApplication sharedApplication];
//Create a task object
__block UIBackgroundTaskIdentifier backgroundTask;
backgroundTask = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (backgroundTask != UIBackgroundTaskInvalid) {
[app endBackgroundTask:backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
if (backgroundTask != UIBackgroundTaskInvalid) {
// do stuff
[app endBackgroundTask:backgroundTask];
backgroundTask = UIBackgroundTaskInvalid;
}
});
});
}
【讨论】:
您可以在应用程序被引导到后台后的有限时间内执行任务,但仅限于提供的持续时间。运行时间超过此时间将导致您的应用程序终止。请参阅 iOS 应用程序编程指南的“Completing a Long-Running Task in the Background”部分了解如何进行此操作。
【讨论】: