等待 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.execute(()) 完成