gpt4 book ai didi

android - 如何在调用新的异步任务时终止以前的任务

转载 作者:太空狗 更新时间:2023-10-29 14:28:05 26 4
gpt4 key购买 nike

我正在使用 asynctask 从给定的 url 获取图像。这些图像显示在 ListView 中。问题是当我快速滚动 ListView 时应用程序崩溃。logcat 错误是

03-27 13:08:42.355: E/AndroidRuntime(25567): java.util.concurrent.RejectedExecutionException: pool=128/128, queue=10/10

从这个错误我开始知道这是并行运行许多异步任务线程的问题。为了解决这个问题我写了下面的代码。

   NWTaskObj obj = new NWTaskObj();
obj.setType(AdapterType.OfferAdapter);
obj.setLink(offer.getImageLink());
obj.setObject(this);
if(count<10){
new HandleOfferImage().execute(obj);
}else{
new HandleOfferImage().cancel(true);
new HandleOfferImage().execute(obj);
}

count 是一个静态变量。它在 HandleOfferImage 类中递增。但它仍然在同一场景中崩溃。我需要终止之前的异步任务(如果计数 >10)除了最后一个.我不想在这里使用惰性列表。有人可以帮助我吗?

最佳答案

new HandleOfferImage().cancel(true);

错了。将任务指针保存在像 mTask 这样的变量中,然后

mTask.cancel(true);

更新:

if (mTask!= null) {
mTask.cancel(true);
}

mTask= new TaskGetTeams();
mTask.execute();

关于android - 如何在调用新的异步任务时终止以前的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885922/

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