在我的iPhone中啓動應用程序時,我需要從服務器下載數據。在下載數據時(在進程的中間),如果我按Home按鈕進入後臺應用程序。這段時間我需要停止正在執行的API請求。目前applicationDidEnterBackground方法正在延遲調用(下載數據後)。同時,應用程序崩潰。我們如何在應用程序進入後臺時取消URL連接。當應用程序進入後臺時取消API請求
請幫我一把。
在此先感謝。
在我的iPhone中啓動應用程序時,我需要從服務器下載數據。在下載數據時(在進程的中間),如果我按Home按鈕進入後臺應用程序。這段時間我需要停止正在執行的API請求。目前applicationDidEnterBackground方法正在延遲調用(下載數據後)。同時,應用程序崩潰。我們如何在應用程序進入後臺時取消URL連接。當應用程序進入後臺時取消API請求
請幫我一把。
在此先感謝。
一種方法是在您的應用程序控制器中設置某種標誌,您可以定期檢查該請求是否被取消。
或者,更好的是,NSThread
對象提供了一種機制來指示它應該被取消。如果進入後臺,請將分離的線程設置爲取消(通過[NSThread cancel]
),然後在任何API回調中,您應該定期檢查[NSThread isCancelled]
是否返回YES
。
以下是關於[NSThread cancel]
的Apple文檔的鏈接。
希望這有助於!
不要忘記'接受'你的答案,如果這有助於你。它給參與者在這裏回答問題的動力。 :-) –
謝謝邁克爾,這是很好的取消線程,而線程是活在我的應用程序。但是我的應用程序的委託方法applicationdidEnterBackground是延遲調用(延遲是請求的API的下載時間)。所以,如何克服延遲?提前致謝。 – Rajesh