当应用程序进入后台时,应用程序代表不会调用

时间:2011-12-01 14:19:55

标签: iphone nsurlconnection nsurlrequest uiapplicationdelegate

我正在实现一个iPhone应用程序。我在应用程序中使用异步请求从服务器下载数据。如果,我按下主页按钮,我的应用程序委托不是直接调用。从服务器完成数据下载后,应用程序委托方法是调用。所以,我如何在我的应用程序中获得立即委托调用。

任何帮助都可以升值。

1 个答案:

答案 0 :(得分:1)

您正在实施哪些委托方法?你可以在这里发布你尝试过的(代码方式)吗?请注意,一旦您的应用程序移至后台,您只能运行短期任务以延长电池寿命。

此示例由Apple提供:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    UIApplication*    app = [UIApplication sharedApplication];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        // Clean up any unfinished task business by marking where you.
        // stopped or ending the task outright.
        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // Do the work associated with the task, preferably in chunks.

        [app endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });
}

如果要执行更长时间运行的任务,则需要特殊权限,即使这样,也只能执行某个操作子集。这里讨论它们:

iOS App Programming Guide: App States and Multitasking