2011-11-02 96 views
0

在我的iPhone中啓動應用程序時,我需要從服務器下載數據。在下載數據時(在進程的中間),如果我按Home按鈕進入後臺應用程序。這段時間我需要停止正在執行的API請求。目前applicationDidEnterBackground方法正在延遲調用(下載數據後)。同時,應用程序崩潰。我們如何在應用程序進入後臺時取消URL連接。當應用程序進入後臺時取消API請求

請幫我一把。

在此先感謝。

回答

0

一種方法是在您的應用程序控制器中設置某種標誌,您可以定期檢查該請求是否被取消。

或者,更好的是,NSThread對象提供了一種機制來指示它應該被取消。如果進入後臺,請將分離的線程設置爲取消(通過[NSThread cancel]),然後在任何API回調中,您應該定期檢查[NSThread isCancelled]是否返回YES

以下是關於[NSThread cancel]的Apple文檔的鏈接。

http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html#//apple_ref/occ/instm/NSThread/cancel

希望這有助於!

+0

不要忘記'接受'你的答案,如果這有助於你。它給參與者在這裏回答問題的動力。 :-) –

+0

謝謝邁克爾,這是很好的取消線程,而線程是活在我的應用程序。但是我的應用程序的委託方法applicationdidEnterBackground是延遲調用(延遲是請求的API的下載時間)。所以,如何克服延遲?提前致謝。 – Rajesh

相關問題