1

也許你可以幫我找到合適的方式來處理這個問題:DidEnterBackground - 請等待ASIHTTP請求和解析結果

  1. 我有一個的NSTimer(在我的AppDelegate啓動)的時候觸發一個類來啓動一個異步服務器請求(I使用ASIFormDataRequest)
  2. 當HTTP JSON-響應被接收,使用TouchJSON
  3. 我解析它然後我回路的NSDictionary獲得填補專用的NSManagedObjectContext
  4. 然後我保存該上下文中某些用戶互動

有時HTTP請求被髮送,並且用戶退出應用程序。我想獲得額外的時間來完成後臺任務2至4。

我讀了蘋果的文檔,但它目前還不清楚如何獲得已開始爲異步操作額外的時間?

總之,我應該如何使用beginBackgroundTaskWithExpirationHandler?

感謝您的非常有用的幫助。

Kheraud

+0

您是否使用'startAsynchronous'異步啓動請求? – 2011-04-29 17:28:44

+0

是的,我正在使用startAsynchronous – iwalktheline 2011-05-03 11:50:12

回答

2

ASIHTTPRequest支持在後臺運行的請求:

[request setShouldContinueWhenAppEntersBackground:YES]; 

如果你做第2-4步委託通知內,並設置上述標誌,那麼應該做你想做的。

您將無法與用戶交互一旦你的應用已經進入後臺,雖然。

+0

是的!聽起來不錯。你知道是否有一個appDelegate方法激發avec退出背景模式(背景計算結束)。我可以使用這種方法來保存上下文 – iwalktheline 2011-05-01 14:42:45

+0

最好就此提出一個單獨的問題。如果你把請求放入ASINetworkQueue並使用隊列的didFinish委託,那麼可能會這樣做,但我不確定我是否已經明白你正在嘗試做什麼。 – JosephH 2011-05-02 09:41:30