gpt4 book ai didi

android - 如何完全杀死/删除/删除/停止 AsyncTask

转载 作者:IT老高 更新时间:2023-10-28 22:05:26 28 4
gpt4 key购买 nike

我制作了一个从我们的服务器下载视频的应用。问题是:

当我取消下载时,我打电话:

myAsyncTask.cancel(true)

我注意到,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);
}

谢谢!!!

最佳答案

AsyncTask 不会取消进程

myAsynTask.cancel(true) 

为此,您必须手动停止它。

例如,您正在 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;
}

关于android - 如何完全杀死/删除/删除/停止 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882543/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com