我不确定如何使用异步任务进行延迟加载?

时间:2013-09-22 13:19:52

标签: android android-listview android-lazyloading

对于失败的选民而言,如果你能提供一个有效的解决方案会更好,而不是每个问题都需要附上一个代码,如果一个人不清楚这些概念你怎么能指望他为你提供他玩的代码??

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

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

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

1 个答案:

答案 0 :(得分: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线程上调用。后台计算的结果作为参数传递给此步骤。

  5. 启动asynktask函数时使用

    onPreExecute()方法。通常在这个方法中,有人使用进度对话框..

    运行进度对话框时使用

    和doInBackground()方法。在这种方法中,您可以实现您想要的工作(功能)。我认为这部分是这个asynktask类的方法中最重要的一点

    和onPostExecute()方法通常在完成后台作业时使用..以便提供某种数据或结果..查看