使用httpclient和asynctask取消文件下载

Ivo*_*Ivo 6 android httpclient android-asynctask

在我的应用程序中,我需要从URL位置下载文件.我想在对话框中(或可选地在通知区域中)显示下载的进度.我在这个问题上遇到过几个很好的资源(例如http://progrnotes.blogspot.com/2010/09/c-android.html).不幸的是,所有示例都没有提供关于如何根据用户的请求正确取消下载的明确指示.所以我的问题其实很简单:

给定在后台下载文件的asynctask(使用httpclient)并显示带有下载进度和取消按钮的对话框,如何在按下按钮时取消下载并停止后台任务?

我知道杀死线程通常不是一个好主意,所以我可能需要在后台线程中使用'cancel'-variable.如何将按钮的停止信号传递给asynctask?

问候,伊沃

dby*_*rne 3

让您的按钮呼叫AsyncTask.cancel(true),然后isCancelled()从内部检查doInBackground(Params... params)。通过这种方式,您可以与后台线程传达应取消下载的信息,并且您可以采取适当的步骤来停止下载。

  • 它只是调用了“OnCancelled”函数,但下载器任务仍在运行不是吗?我想要一种方法来停止下载任务..该怎么做 (2认同)