Android 如何取消异步任务
我有一种方法可以在名为fillimages的列表视图中填充图像,这是一项异步任务,我的问题是如果我想刷新我的应用程序,它会等待fillimages完成,然后启动刷新,这是浪费时间和资源,因此,在side fillimages中插入了一个cancel语句,但现在的问题是,当我刷新fillimages cancel时,当我再次调用它时,它将不会运行(因为它读取cancel部分)。你能帮我解决这个问题吗,下面是代码Android 如何取消异步任务,android,android-asynctask,Android,Android Asynctask,我有一种方法可以在名为fillimages的列表视图中填充图像,这是一项异步任务,我的问题是如果我想刷新我的应用程序,它会等待fillimages完成,然后启动刷新,这是浪费时间和资源,因此,在side fillimages中插入了一个cancel语句,但现在的问题是,当我刷新fillimages cancel时,当我再次调用它时,它将不会运行(因为它读取cancel部分)。你能帮我解决这个问题吗,下面是代码 fillimages fl = new fillimages(); fl.excute
fillimages fl = new fillimages();
fl.excute();
public class fillimages extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
for(int i = 3;i<data.size();i++){
if(fl.isCancelled()){
Log.d("debug","fl canceled");
break;
}
try {
Bitmap bm = BitmapFactory.decodeStream(new URL(data.get(i).getImagelink()).openConnection().getInputStream());
data.get(i).setBm(bm);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
fillimages fl=新的fillimages();
fl.excute();
公共类fillimages扩展异步任务{
@凌驾
受保护的Void doInBackground(Void…参数){
对于(int i=3;iAsyncTasks,一旦取消,就不能重新运行;它们是一次性的,因此必须创建一个新的AsyncTask
顺便说一下,我建议您使用将图像设置为ListView项目