AsyncTask中onPostExecute方法的返回类型可以不为void吗?

Posted

技术标签:

【中文标题】AsyncTask中onPostExecute方法的返回类型可以不为void吗?【英文标题】:Can the return type of onPostExecute method in AsyncTask be not void? 【发布时间】:2012-03-19 13:27:49 【问题描述】:

我正在开发一个 android 应用,它需要使用 AsyncTask 进行网络连接。我已经执行了 doInBackground 方法并将返回值传递给 onPostExecute 方法。我想将 onPostExecute 方法中的一些值返回给调用它的函数(我知道,onPostExecute 在主线程中执行)。这可能吗?是不是,onPostExecute 返回类型必须为 void?如果没有,你有什么建议?

提前致谢 马尼什

【问题讨论】:

【参考方案1】:

如果您希望 AsyncTask 返回将直接捕获的值,则需要阻塞调用,这违背了 AsyncTask 的目的。

您应该做的是扩展 AsyncTask 或包装它,然后创建一个包含您希望返回的值的字段,并在 onPostExecute 中设置它。然后在您的代码中,保存对您的 AsyncTask 的引用,并在任务完成后检查该值。

【讨论】:

谢谢 JRL..但是你包装 AsyncTask 是什么意思..你是怎么做的?能详细点吗?

以上是关于AsyncTask中onPostExecute方法的返回类型可以不为void吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Asynctask 的 onPostExecute() 方法中更改片段

无法覆盖 AsyncTask 类中的 onPostExecute() 方法或使其触发

AsyncTask 的 onPostExecute 方法获取相同的参数

如何使用 AsyncTask 的 onPostExecute 方法更新 Android 中的变量

AsyncTask的onPostExecute方法获取相同的参数

将字符串值分配给来自AsyncTask的onPostExecute方法的活动字符串变量不起作用