Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android中的等待异步任务_Java_Android_Android Asynctask_Wait_Multitasking - Fatal编程技术网

Java android中的等待异步任务

Java android中的等待异步任务,java,android,android-asynctask,wait,multitasking,Java,Android,Android Asynctask,Wait,Multitasking,我是android开发的新手,我想问一下如何等待一些已经在运行的异步任务。另外,当我试图休眠主线程时,其中许多线程被系统挂起。当我使用arraylist添加它们,然后调用它们中的每一个时,它们中的许多都无法按时完成。请给我一个代码示例,因为我搜索了三天。。。 谢谢 我会尝试在这里回答你的问题,但问题并不清楚 如果您想检查arraylist中是否有AsyncTask已完成,我们可以使用getStatus返回a,幸运的是,其中一个状态已完成,因此您可以检查任何给定AsyncTask的状态 如果您想一

我是android开发的新手,我想问一下如何等待一些已经在运行的异步任务。另外,当我试图休眠主线程时,其中许多线程被系统挂起。当我使用arraylist添加它们,然后调用它们中的每一个时,它们中的许多都无法按时完成。请给我一个代码示例,因为我搜索了三天。。。 谢谢


我会尝试在这里回答你的问题,但问题并不清楚

如果您想检查arraylist中是否有AsyncTask已完成,我们可以使用getStatus返回a,幸运的是,其中一个状态已完成,因此您可以检查任何给定AsyncTask的状态

如果您想一直睡到其中一个异步任务完成,那么最好的方法可能是在onPostExecute中执行某些操作。当您启动时,您可以做一些事情来通知主线程。其中一种方法是:

public interface Callback {
  public void callBack(int id);
}
public class MainActivity implements Callback {
  private void function() {
    //do your thing
    AsyncTask task0 = new MyAsyncTask(this, 0); //implement your own asynctask here, 
    //with one of the parameters this activity so that you can get a callback. 
    //Also, optionally give in the id so that you know what index of asynctask is finished first.  
    //do the same thing for other tasks
    task1.execute(params);
  }

  public void callBack(int id) {
    arrayList.get(id).get(); //this is done
  }
在AsyncTask中,您只需将onPostExecute重写为如下内容

protected void onPostExecute (Result result) {
  //do your thing
  mainActivity.callBack(id);
}

希望这能有所帮助。

你是说异步任务,对吗?名字很重要。如果在UI线程上使用AsyncTask,我想在本例中看到更多的UI代码。实际编译的东西最好。你想做什么?问题还不清楚。AsyncTask通过触发onPostExecute事件来告诉您它何时完成。供参考:
protected void onPostExecute (Result result) {
  //do your thing
  mainActivity.callBack(id);
}