Ada*_*gyi 26 android android-asynctask
我制作了一个从我们的服务器上下载视频的应用.问题是:
当我取消下载时,我打电话:
myAsyncTask.cancel(true)
Run Code Online (Sandbox Code Playgroud)
我注意到,这myAsyncTask不会停止呼叫取消...我ProgressDialog仍然上升,就像从状态跳到状态显示我每次取消并再次启动时AsyncTask通过单击下载按钮,新的AsyncTask启动...每个时间我点击下载..然后取消,然后再次单独下载AsyncTask启动.
为什么myAsynTask.cancle(true)不取消我的任务?我不再想要它了.如果我点击取消,我只想完全关闭它.
怎么做 ?
编辑:
感谢gtumca-MAC,以及帮助我的其他人做到了:
while (((count = input.read(data)) != -1) && (this.isCancelled()==false))
{
total += count;
publishProgress((int) (total * 100 / lenghtOfFile));
output.write(data, 0, count);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
MAC*_*MAC 56
AsyncTask不会取消进程
myAsynTask.cancel(true)
Run Code Online (Sandbox Code Playgroud)
为此,你必须手动停止它.
例如,您正在doInBackground(..)使用while/for循环下载视频.
protected Long doInBackground(URL... urls) {
for (int i = 0; i < count; i++) {
// you need to break your loop on particular condition here
if(isCancelled())
break;
}
return totalSize;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
在你的课堂上声明
DownloadFileAsync downloadFile = new DownloadFileAsync();
Run Code Online (Sandbox Code Playgroud)
然后在创建
DownloadFileAsync downloadFile = new DownloadFileAsync();
downloadFile.execute(url);
Run Code Online (Sandbox Code Playgroud)
在你的背景 ()
if (isCancelled())
break;
@Override
protected void onCancelled(){
}
Run Code Online (Sandbox Code Playgroud)
你可以通过以下方式杀死你的 AsyncTask
downloadFile.cancel(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58366 次 |
| 最近记录: |