gpt4 book ai didi

android - 如何停止在线程池执行器 Android 中运行的任务

转载 作者:行者123 更新时间:2023-11-29 14:49:29 25 4
gpt4 key购买 nike

我的项目中有一个异步任务,如下所示。

@SuppressLint("NewApi")

private void callTask() {

new Task() {

@Override
protected void doInBackground(String... params) {

}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
string1,string2 );
}

我在 for 循环 中调用此 callTask​​() 方法 10 次。

我的任务正在并行执行并且运行良好。我想在一个时间点停止所有任务。我怎样才能做到这一点?

最佳答案

您需要将每个任务(异步任务)的实例保存在 ArrayList 或任何其他结构中,并将您的任务对象添加到其中

请检查以下代码:

private ArrayList<Task> array_task = new ArrayList<Task>();
private void callTask() {
Task task = new Task() {
@Override
protected void doInBackground(String... params) {

}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
string1,string2 );
array_task.add(task);
}

当你想取消所有任务后,你需要再次使用 for 循环来取消所有任务检查以下代码

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.cancel_all_task:
callCancel_AllAsyncTask();
break;

}
}

private void callCancel_AllAsyncTask()
{
for(int i=0;i<array_task.size();i++)
{
array_task.get(i).cancel(true);
}
}

关于android - 如何停止在线程池执行器 Android 中运行的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23355908/

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