Iphone ASIHTTPRequest和后台下载

Iphone ASIHTTPRequest和后台下载,iphone,delegates,background,download,asihttprequest,Iphone,Delegates,Background,Download,Asihttprequest,我打算用AsiTRequest下载一个mp3文件。 我需要使用队列,因为可以同时进行多个下载 我看到你可以用 [request setShouldContinueWhenAppEntersBackground:YES]; 如果您想支持后台执行。。。 如果文件在后台完成,我如何处理 代表们会被叫来吗? 如果在调用代理时应用程序处于后台,我可以从该代理制作其中一个通知徽章吗 PS:我在iOS4上,支持后台执行。在下载时调用endBackgroundTask:之前,仍应调用requestFinish

我打算用AsiTRequest下载一个mp3文件。 我需要使用队列,因为可以同时进行多个下载

我看到你可以用

[request setShouldContinueWhenAppEntersBackground:YES];
如果您想支持后台执行。。。 如果文件在后台完成,我如何处理

代表们会被叫来吗? 如果在调用代理时应用程序处于后台,我可以从该代理制作其中一个通知徽章吗


PS:我在iOS4上,支持后台执行。

在下载时调用
endBackgroundTask:
之前,仍应调用
requestFinished
方法;但是,为了确保执行您想要的功能(通知徽章或其他东西),您应该使用
UIBackgroundTask

基本上,我们的想法是创建一个新的后台任务,并在delegate finished方法中使用
beginBackgroundTaskWithExpirationHandler:
,然后在后台任务中执行任何您想要的操作(请参阅apple开发指南)


确保在完成任务后调用
endBackgroundTask

UIBackgroundTask要求同步操作,不是吗?我需要显示下载的进度,因为它正在发生。将操作同步化是否会导致无法获得有关进度的代理通知?我不认为有办法在应用程序处于后台时向用户显示进度。我说的是使用UIBackgroundTask通知用户下载完成,如果应用程序在后台完成下载。您仍然可以使用ASIHTTP下载/监视队列。看起来我没有专业知识完全理解该答案:(我从你说的话中了解到的是(ASIhttp…)无论如何,代理都会被调用,我必须启动beginBackgroundTask…来执行通知。这在我脑海中提出了另一个问题。如果我尝试在代理中更新UIProgressBar,是否有一个规则,即在后台进行UI更新的应用程序会立即被杀死?是否有办法确定代理是否被调用w当应用程序在后台时?(请原谅,但我有点经验不足。)另外,我不想显示任何更新,因为用户在后台。我只需要在前台显示一个进度条,并支持后台下载。我正在上传一个文件,当它在后台时停止,我使用了上面提到的行,它立即失败,服务器人员告诉我你的套接字已断开出现以下错误:“处理多部分/表单数据请求失败。套接字读取失败”