如何扩展AsyncTask <void,void,=“”long =“”> work </void,>

时间:2011-04-14 12:46:12

标签: android android-asynctask extends

我想知道它是如何工作的。我已经阅读了几次文档,但是没有理解。

我注意到在某些情况下onPostExecute什么也没做。

有人可以给我一点解释吗?

4 个答案:

答案 0 :(得分:11)

AsyncTask是一个派生自Thread的类,它为您提供了一种简单而恰当的方法,可以在后台执行某些操作,并能够通知UI Thread

为了使用它,你应该创建一个classextends并定义类型参数。它们是ParamsProgressResult。更多地了解here

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

您可以看到AsyncTask使用here的示例。

答案 1 :(得分:3)

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

通常,当您想要启动/停止进度对话框时,请使用onPre/PostExecute()

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

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

答案 2 :(得分:2)

This帖子很好地解释了AsyncTask概念图!

答案 3 :(得分:0)

完成后台任务{onPostExecute()}后,如果您想要执行某些操作,则会使用

{(doInBackground())}

例如,

start Progress Bar @ {onPreExecute()}
running Progress Bar @ {doInBackground()}
stop Progress Bar @ {onPostExecute()}