我需要防止同时执行两个或多个异步任务,例如:
AsyncTask t1 = new myTask();
AsyncTask t2 = new myTask();
AsyncTask t3 = new myTask();
t1.execute();
t2.execute();
t3.ececute();
我需要取消 t2 和 t3,并且在 t1 正在运行时根本不执行它们。
Executors.newSingleThreadExecutor()
是我需要的吗?
谢谢
最佳答案
Executors.newSingleThreadExecutor()将在单个线程上运行所有内容,即一个接一个地运行。执行您想要执行的操作的最佳方法是,如果当前任务已在运行,则不允许创建新任务。您可以使用以下代码作为示例:
MyAsyncTask task = new MyAsyncTask();
private void createNewTask(Object o) {
if(task.getStatus() == AsyncTask.Status.RUNNING) {
//Do Something?
} else {
task = new MyAsyncTask();
task.execute(arg0);
}
}
关于java - 防止android中的asynctask任务排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637236/