Android[中级教程]第十一章 Android异步之AsyncTask
16lz
2021-01-23
Android里有一个自带的异步类,里面封装了异步的操作方法,主要有三个操作方法
1.doInBackground 这是后台运行的程序,就是新建了一个线程在后台所要运行的内容,例如(网络获取图片)
2.onProgressUpdate 是前台界面的更新,后台的操作要反映到前台,就需要在这里面做处理,例如(刷新前台的图片)
3.onPostExecute 这个就是线程结束后做的处理
在这里面将异步分成三个步骤,好了,不多说了,让我们看一下今天运行的程序,程序将每隔一秒钟加入一项内容,见图
好,接下来,我们来分析一下代码的实现:
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();}}}其实就这么点代码,具体步骤就是这样,相信大家都能看懂。
更多相关文章
- Android手机端使用Zipalign优化apk应用程序
- Android的无边界程序设计理念
- 管理Android应用程序的资源
- android恶意程序分析 (二)
- Android之调用其他程序
- Android开发学习笔记-关于Android的消息推送以及前后台切换
- android不同应用程序之间启动Activity
- Android Intent应用,打开网页,安装程序,打电话,打开地图等功能