【问题标题】:ANDROID: Running mutiple async tasks after the first one finishesANDROID:在第一个完成后运行多个异步任务
【发布时间】:2015-05-31 15:00:52
【问题描述】:

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

有什么想法吗?

【问题讨论】:

  • 看看吧。有很多与你的问题相关的细节。 stackoverflow.com/questions/4068984/…
  • 在第一个onPostExecute之后执行剩余的AsyncTasks
  • 如果你关心你的代码是否干净,你可以将回调接口传递给 AsyncTask 并在回调上运行剩余的任务

标签: android asynchronous android-asynctask


【解决方案1】:

也许对第一个使用处理程序,以便代码在不同的线程上运行并在该线程完成时触发其余的:

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

【讨论】:

    【解决方案2】:

    如果您想确保第一个 AsyncTask 已完成并在其余部分执行之前返回所需的数据,则覆盖第一个 AsyncTask 的 onPostExecute() 方法并执行其中的剩余 AsyncTask。

    onPostExecute() 是 AsyncTask 完成后调用的方法,您可以在执行其他 AsyncTask 之前检查其内部接收数据的正确性。

    【讨论】:

      【解决方案3】:

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

      为了清楚起见,您根本不需要做任何事情来确保第一个任务在第二个(等等)运行之前完成。每个都将在下一个开始之前完成,按提交顺序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-09
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        相关资源
        最近更新 更多