2010-12-16 114 views
0

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

我使用这个方法任务完成,

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

     [app endBackgroundTask:bgTask]; 

     bgTask=UIBackgroundTaskInvalid; 
    }]; 
} 

但我没有得到来自该方法的任何输出。任何人都告诉我,我做错了什么。你可以告诉任何最好的方法来完成任务。

问候,

Arunkumar.P

回答

1

要设置到期处理程序,但你似乎并没有被实际做后台东西。它看起来像上面的代码是从iOS应用程序编程指南的Executing Code in the Background部分复制的。在exxample下一块的代码是:

// 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分钟,我检查最后一次)为止;你在异步调度的任务中执行工作,而不是在过期处理程序中执行。

0

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

主要思想是分派异步执行代码,它什么都不做,但允许你当前的代码继续运行。

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

+0

链接已死亡。这就是你应该总结这个问题的原因。请编辑答案,以便我们获得解决方案的要点。它肯定会使这个答案更有用。 – 2015-09-10 21:22:52