当应用程序进入后台时取消API请求
问题描述:
在我的iPhone中启动应用程序时,我需要从服务器下载数据。在下载数据时(在进程的中间),如果我按Home按钮进入后台应用程序。这段时间我需要停止正在执行的API请求。目前applicationDidEnterBackground方法正在延迟调用(下载数据后)。同时,应用程序崩溃。我们如何在应用程序进入后台时取消URL连接。当应用程序进入后台时取消API请求
请帮我一把。
在此先感谢。
答
一种方法是在您的应用程序控制器中设置某种标志,您可以定期检查该请求是否被取消。
或者,更好的是,NSThread
对象提供了一种机制来指示它应该被取消。如果进入后台,请将分离的线程设置为取消(通过[NSThread cancel]
),然后在任何API回调中,您应该定期检查[NSThread isCancelled]
是否返回YES
。
以下是关于[NSThread cancel]
的Apple文档的链接。
希望这有助于!
不要忘记'接受'你的答案,如果这有助于你。它给参与者在这里回答问题的动力。 :-) –
谢谢迈克尔,这是很好的取消线程,而线程是活在我的应用程序。但是我的应用程序的委托方法applicationdidEnterBackground是延迟调用(延迟是请求的API的下载时间)。所以,如何克服延迟?提前致谢。 – Rajesh