如何在iphone中设置应用程序在后台运行?

时间:2012-07-26 02:28:36

标签: iphone background

如何在iphone中设置应用程序在后台运行?

2 个答案:

答案 0 :(得分:1)

参考以下代码。

- (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;
            }
        });
    });
}

答案 1 :(得分:1)

您可以在应用程序指向后台后的有限时间内执行任务,但仅限于提供的持续时间。运行时间超过此时间将导致您的应用程序终止。有关如何解决此问题,请参阅“iOS应用程序编程指南”的“Completing a Long-Running Task in the Background”部分。