Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
ANDROID:在第一个任务完成后运行多个异步任务_Android_Asynchronous_Android Asynctask - Fatal编程技术网

ANDROID:在第一个任务完成后运行多个异步任务

ANDROID:在第一个任务完成后运行多个异步任务,android,asynchronous,android-asynctask,Android,Asynchronous,Android Asynctask,基本上是标题。我可以连续运行它们,也可以同时运行它们。我需要运行第一个来加载其余部分的数据 有什么想法吗?可能会对第一个线程使用处理程序,以便代码在另一个线程上运行,并在该线程完成时触发其余线程: Handler firstTask = new Handler(new Runnable() { Run() { //do code //run rest of tasks } } 异步任务将按照提交的顺序运行,不会同时运行,除非明确使用Execute

基本上是标题。我可以连续运行它们,也可以同时运行它们。我需要运行第一个来加载其余部分的数据


有什么想法吗?

可能会对第一个线程使用处理程序,以便代码在另一个线程上运行,并在该线程完成时触发其余线程:

Handler firstTask = new Handler(new Runnable() {
    Run() {
        //do code
        //run rest of tasks
    }
}

异步任务将按照提交的顺序运行,不会同时运行,除非明确使用
ExecuteOnExecutor
方法。您可以相应地在它们之间传递数据


需要明确的是,您不必做任何事情来确保第一个任务在第二个任务(等等)运行之前完成。每个任务都将在下一个任务开始之前按提交顺序完成。

如果要确保第一个异步任务已完成并在执行其余任务之前返回所需数据,请重写第一个异步任务的onPostExecute()方法,并在其中执行剩余的异步任务


onPostExecute()是一种在异步任务完成后调用的方法,在执行其中的其他异步任务之前,您可以检查其中接收到的数据的正确性。

查看一下。有很多与您的问题相关的细节。在
onPostExecute
之后执行剩余的
AsyncTasks
在第一个任务上您可以将回调接口传递给AsyncTask,并在回调时运行剩余的任务(如果您希望代码保持干净)