Linux 拨号vps windows公众号手机端

listview怎么异步加载数据

lewis 8年前 (2017-02-14) 阅读数 12 #程序编程
文章标签 listview

在ListView中异步加载数据的常见方法有两种:使用AsyncTask和使用线程池。

使用AsyncTask:

  1. 创建一个继承自AsyncTask的类,并重写其doInBackground()方法,在该方法中执行耗时操作,如从网络加载数据。
  2. 在doInBackground()方法中,通过publishProgress()方法来更新进度。
  3. 在重写的onProgressUpdate()方法中,更新UI界面,如将加载的数据添加到ListView中。
  4. 在重写的onPostExecute()方法中,更新UI界面,如提示加载完成或显示加载失败信息。
  5. 在ListView的适配器中,根据需要实现getItem()、getCount()等方法。

使用线程池:

  1. 创建一个线程池对象,如ExecutorService executor = Executors.newFixedThreadPool(5)。
  2. 在需要异步加载数据的地方,将任务提交给线程池执行,如executor.execute(new Runnable() { … })。
  3. 在任务的run()方法中执行耗时操作,如从网络加载数据。
  4. 在run()方法中,通过Handler将加载的数据发送给UI线程,如handler.sendMessage()。
  5. 在UI线程中的Handler中,通过接收到的消息更新UI界面,如将加载的数据添加到ListView中。

无论是使用AsyncTask还是线程池,都需要在加载数据的过程中更新UI界面。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门