等待 AsyncTask 完成,然后在 Android Java 中执行下一个代码

Posted

技术标签:

【中文标题】等待 AsyncTask 完成,然后在 Android Java 中执行下一个代码【英文标题】:Wait AsyncTask to finish and then exectues the next code in Android Java 【发布时间】:2021-04-13 19:49:51 【问题描述】:

我正在开发一个使用 Java 语言的 android 应用程序。我遇到了一个奇怪的问题。我正在使用第三方库,它向服务器请求,获取一些数据,对数据进行一些更改,然后将其提供给我。所以就我而言,我没有做任何与网络相关的工作。我只是调用库的函数并获取数据。

现在的问题是我想等到函数返回数据,然后执行下一行的代码。但它会在活动结束时返回数据。

我在 github 上检查了它围绕 AsyncTask 构建的库的源代码,并在后台线程中完成工作。由于我无法更改库的代码,所以我希望在调用函数时,它会一直等到完成工作,然后移动到代码的下一行执行。

如果有人知道怎么做,请帮助我。

【问题讨论】:

请添加你的代码调用AsyncTask函数 在 AsyncTask 的 doInBackground() 方法中调用库方法,然后将该方法的结果传递给 onPostExecute()。得到结果后,在 onPostExecute() 【参考方案1】:

你应该看到这个帖子:AsyncTask Android example

您需要使用postExecute() 方法来启动您的自定义方法以继续流程。

顺便说一句,AsyncTask 即将被弃用,所以也许你需要使用类似这篇文章的东西:Android AsyncTask API deprecating in Android 11.What are the alternatives? 或者学习 Kotlin 并使用协程。

【讨论】:

以上是关于等待 AsyncTask 完成,然后在 Android Java 中执行下一个代码的主要内容,如果未能解决你的问题,请参考以下文章

让一个 AsyncTask 等待另一个完成?

在返回结果之前等待 AsyncTask.execute(()) 完成

Android AsyncTask 等待其他函数完成

Android AsyncTask 等待完成以检索数据并将其显示在 ListView

等待 Google 在 AsyncTask 中放置照片请求

在主线程中等待 AsyncTask