2

我想知道它是如何工作的。我已经阅读了几次文档,但不明白。

我注意到在某些情况下onPostExecute什么都不做。

谁能给我一点解释?

4

4 回答 4

11

AsyncTask是一个派生ThreadUI Thread.

为了使用它,您应该创建一个classextends它并定义类型参数。它们ParamsProgressResult在这里阅读更多关于它们的信息。

onPostExecute()doInBackground()是一种在完成执行时调用的方法,但onPostExecute()在 UI 线程上运行。因此,您可以通知 UI 工作已完成。

您可以在此处AsyncTask查看使用示例。

于 2011-04-14T12:53:13.220 回答
3

<Void, Void, Long>部分在 Java 中称为Generics。它用于那些原始编码器希望使用它的类,无论“最终用户”选择什么类型。

通常onPre/PostExecute()在您想要开始/停止进度对话框时使用。

如果您想在没有进度对话框的情况下在进度期间更新 UI,您可以执行以下操作onProgressUpdate()(即:您正在从 Web 加载图像并在加载时显示它们)

如果您有一个带有进度条的对话框,则必须使用所有这些对话框来更新进度条。

于 2011-04-14T13:10:05.573 回答
2

这篇文章用图表很好地解释了 AsyncTask 的概念!

于 2011-04-14T18:55:46.897 回答
0

{onPostExecute()}当您在完成后台任务后想要做某事时使用{(doInBackground())}

例如,

start Progress Bar @ {onPreExecute()}
running Progress Bar @ {doInBackground()}
stop Progress Bar @ {onPostExecute()}
于 2012-08-09T11:29:35.860 回答