gpt4 book ai didi

java - 单击按钮上的 AsyncTask = 任务已取消或仍在运行?

转载 作者:行者123 更新时间:2023-12-02 00:22:30 26 4
gpt4 key购买 nike

如果我有一个启动 AsyncTask 的按钮操作。如果我点击按钮 10 次会怎样?该任务执行了 10 次并在后台运行了这么多次吗?或者是否取消了任何先前的任务,而只是重新启动了该任务(这将是我想要的行为)?

public void myButtonClick(View v) {
new MyAsyncTask().execute(params);
}

最佳答案

每次单击该按钮都会生成一个 MyAsyncTask 的新实例,这意味着每个任务都会创建并执行,直到其结束。

如果您想停止先前启动的任务,则必须存储对上次启动的任务的引用并取消它,如下所示:

public void myButtonClick(View v) {
if (this.lastMyAsyncTask != null && this.lastMyAsyncTask.getStatus() != AsyncTask.Status.FINISHED){
this.lastMyAsyncTask.cancel();
}
this.lastMyAsyncTask = new MyAsyncTask();
this.lastMyAsyncTask.execute(params);
}

关于java - 单击按钮上的 AsyncTask = 任务已取消或仍在运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10677889/

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