android - 等待 ASyncTask 完成或设置变量

标签 android android-asynctask

我正在尝试将 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/

相关文章:

Android:颜色到 Int 的转换

android - drawBitmap() 和 setPixels() : what's the stride?

android - 将 AsyncTask 与数据库一起使用

android - 将 asynctask 值传递给 mainactivity 时出现上下文错误

java - http获取android异步任务

android - 在 IntelliJ 中编译时找不到模块包

android - 为我的 Android 设备删除 Settings.APK 会有什么影响?

java - 在通知图标中添加小图标

android - 异步任务不会停止

android - 带回调的通用 asyncTask(用于 Web 服务)