0

对于反对的选民,如果你能提供一个可行的解决方案会更好,不是每个问题都需要附上代码,如果一个人不清楚概念,你怎么能指望他为你提供他玩过的代码和??

这基本上是一个概念性问题,我尝试阅读文档,但仍然无法更好地理解该主题。我不知道我应该如何使用异步任务....我之前使用过异步任务来显示来自互联网的图像,但我仍然对它的工作原理感到困惑。我知道它的 3 个常用功能。IE

1.onPreExecute() 2.doinBackground() 3.onPostExecute()

现在我很困惑,如果我必须填充一个列表应该怎么做?我知道填充部分应该在 doinbackground() 中完成,但在那之后我应该返回结果(从后台),在整个列表被填充后,到 onPostExecute() 并期望列表将被加载到listview 异步
或者我应该部分返回结果(比如一个新项目已添加到列表中,立即将其发送到 onpostexecute 而不等待整个列表生成,显示并重复迭代)到 onpostExecute( )??并通过这样做自己管理惰性负载?

4

1 回答 1

2

好吧..你为什么看不到下面的android API信息..

4 个步骤 当一个异步任务被执行时,该任务会经历 4 个步骤:

  1. onPreExecute(),在任务执行之前在 UI 线程上调用。此步骤通常用于设置任务,例如通过在用户界面中显示进度条。

  2. doInBackground(Params...),在 onPreExecute() 完成执行后立即在后台线程上调用。此步骤用于执行可能需要很长时间的后台计算。异步任务的参数传递到这一步。计算的结果必须由这一步返回,并将传递回最后一步。此步骤还可以使用 publishProgress(Progress...) 来发布一个或多个进度单位。这些值在 UI 线程上的 onProgressUpdate(Progress...) 步骤中发布。

  3. onProgressUpdate(Progress...),在调用 publishProgress(Progress...) 后在 UI 线程上调用。执行的时间是不确定的。此方法用于在后台计算仍在执行时在用户界面中显示任何形式的进度。例如,它可用于动画进度条或在文本字段中显示日志。

  4. onPostExecute(Result),在后台计算完成后在 UI 线程上调用。后台计算的结果作为参数传递给该步骤。

onPreExecute() 方法在启动 asynctask 函数时使用。通常在此方法中,有人使用进度对话框。

并且在进度对话框运行时使用 doInBackground() 方法。在这种方法中,您可以实现您想要的工作(功能)。我认为这部分是这个 asynctask 类的方法中最重要的一点

和 onPostExecute() 方法通常在完成后台作业时使用.. 以传递某种数据或结果.. 到 View

于 2013-09-22T13:39:22.237 回答