如何实现任务完成

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

我正在使用此方法执行任务,

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

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

问候,

Arunkumar.P

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

 // 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分钟,我上次检查)时,将不会调用到期处理程序; 您在异步分派的任务中执行工作,而不是在到期处理程序中。

这解决了我的问题: IOS 4中的简单后台任务 。

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

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