Android[中级教程]第十一章 Android异步之AsyncTask

本文详细介绍了Android中异步操作的实现过程,通过一个具体实例展示了如何使用AsyncTask类进行后台任务处理,包括后台运行、前台界面更新和线程结束后的处理。通过每隔一秒钟加入一项内容的程序实现,清晰地阐述了异步操作的三个关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


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

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

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


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


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

public class AsynDemo extends Activity { private String[] items = { "第一项", "第二项", "第三项", "第四项", "第五项", "第六项", "第七项", "第八项", "第九项", "第十项" }; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.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> { //后台运行的程序 @Override protected Void doInBackground(Void... arg0) { //遍历items数组,将每个String发给前台 for (String s : items) { publishProgress(s); SystemClock.sleep(1000); } return null; } //前台操作,将数据加入到到Adapter @Override protected void onProgressUpdate(String... values) { ((ArrayAdapter) listView.getAdapter()).add(values[0]); } //结束 @Override protected void onPostExecute(Void result) { Toast.makeText(AsynDemo.this, "结束", 1).show(); } } }其实就这么点代码,具体步骤就是这样,相信大家都能看懂。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值