Android里有一个自带的异步类,里面封装了异步的操作方法,主要有三个操作方法


1.doInBackground 这是后台运行的程序,就是新建了一个线程在后台所要运行的内容,例如(网络获取图片)

2.onProgressUpdate 是前台界面的更新,后台的操作要反映到前台,就需要在这里面做处理,例如(刷新前台的图片)

3.onPostExecute 这个就是线程结束后做的处理


在这里面将异步分成三个步骤,好了,不多说了,让我们看一下今天运行的程序,程序将每隔一秒钟加入一项内容,见图

Android[中级教程]第十一章 Android异步之AsyncTask_第1张图片

好,接下来,我们来分析一下代码的实现:

public class AsynDemo extends Activity {private String[] items = { "第一项", "第二项", "第三项", "第四项", "第五项", "第六项", "第七项","第八项", "第九项", "第十项" };private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.asyn_layout);listView = (ListView) findViewById(R.id.list);//设定listView的适配器listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, new ArrayList()));//运行异步程序new AddStringTask().execute();}/** * 异步类,继承了AsyncTask * */class AddStringTask extends AsyncTask<Void, String, Void> {//后台运行的程序@Overrideprotected Void doInBackground(Void... arg0) {//遍历items数组,将每个String发给前台for (String s : items) {publishProgress(s);SystemClock.sleep(1000);}return null;}//前台操作,将数据加入到到Adapter@Overrideprotected void onProgressUpdate(String... values) {((ArrayAdapter) listView.getAdapter()).add(values[0]);}//结束@Overrideprotected void onPostExecute(Void result) {Toast.makeText(AsynDemo.this, "结束", 1).show();}}}
其实就这么点代码,具体步骤就是这样,相信大家都能看懂。


更多相关文章

  1. Android手机端使用Zipalign优化apk应用程序
  2. Android的无边界程序设计理念
  3. 管理Android应用程序的资源
  4. android恶意程序分析 (二)
  5. Android之调用其他程序
  6. Android开发学习笔记-关于Android的消息推送以及前后台切换
  7. android不同应用程序之间启动Activity
  8. Android Intent应用,打开网页,安装程序,打电话,打开地图等功能

随机推荐

  1. 5.0 Ansible 组织Playbook角色
  2. DevOps与传统的融合落地实践及案例分享
  3. Vue.js 基础入门系列(一)环境搭建
  4. 驱动器中的磁盘未被格式化. 不知道怎样寻
  5. Vue.js基础入门系列(二)数据绑定
  6. 中科三方:自签名的SSL证书与购买的专业SSL
  7. mysql数据库题目
  8. 智汇华云 | ArcherOS Stack共享存储虚拟
  9. Affinity Photo能代替PS的修图神器
  10. HTML5画布如何设置线的样式?