ios中文 - iphone ios history




如何實現任務完成 (2)

您正在設置到期處理程序,但是您似乎沒有在後台實際做任何事情。 它看起來像上面的代碼是從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分鐘,我上次檢查)到達; 你在異步調度的任務中完成工作,而不是在過期處理程序中。

任務完成 - 應用程序可以要求系統有額外的時間來完成給定的任務。

我正在使用這個方法來完成任務,

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

        [app endBackgroundTask:bgTask]; 

        bgTask=UIBackgroundTaskInvalid;
    }];
}

但是我沒有從這個方法得到任何輸出。 任何人都告訴我,我做錯了什麼。你可以告訴任何最好的方法來完成任務。

問候,

Arunkumar.P


這解決了我的問題: 簡單的後台任務在IOS 4

主要思想是分派一個什麼也不做的異步執行代碼,但是允許你當前的代碼繼續運行。

希望它也能解決你的問題!





multitasking