2010-12-16 91 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