如何实现任务完成

时间:2010-12-16 05:09:17

标签: iphone cocoa ios ios4 multitasking

任务完成 - 应用程序可以要求系统有额外的时间来完成给定的任务。

我正在使用此方法进行任务完成,

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^
    { 
         NSLog(@"This is Testing");

        [app endBackgroundTask:bgTask]; 

        bgTask=UIBackgroundTaskInvalid;
    }];
}

但我没有从这种方法获得任何输出。有人告诉我,我做错了什么。可以告诉任何最好的方法来完成任务。

此致

Arunkumar.P

2 个答案:

答案 0 :(得分:1)

您正在设置过期处理程序,但您似乎并未在后台执行任何操作。看起来您上面的代码是从iOS应用程序编程指南的Executing Code in the Background部分复制的。该示例中的下一段代码是:

// 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.

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

在达到时间限制(上次检查时间为10分钟)之前,不会调用过期处理程序;您在异步分派的任务中完成工作,而不是在到期处理程序中。

答案 1 :(得分:0)

这解决了我的问题:Easy Background Tasks In IOS 4

主要思想是派遣一个不执行任何操作的异步执行代码,但允许您当前的代码继续运行。

希望它也能解决你的问题!