我正在尝试将 Activity 中的变量设置为我的 AsyncTask 的结果。我读到我无法返回变量,我必须在我的 Activity 中设置变量,然后在 onPostExecute
方法中更改它。
我的问题是在 AsyncTask 完成后我需要使用那个变量。我在这方面遇到了麻烦,因为到目前为止我尝试过的所有解决方案都会导致 UI 卡住,然后变得无响应。
到目前为止我尝试了什么:
while (!task.isCancelled()) {
// Wait...
}
和
while (variable == null) {
// Wait ...
}
我正在做的是将变量从 AsyncTask 传递到我的 Activity 的最佳方式吗?如果是,那么我如何在不锁定 UI 的情况下等待 Activity 中的任务完成?
最佳答案
如果您依赖于 AsyncTask 的结果,则可以这样做。
Object result = asyncTask.execute().get();
结果的类型是您的 doInBackground() 方法中的返回类型。但是你的主线程将等待直到任务完成。
关于android - 等待 ASyncTask 完成或设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14045765/