AsyncTask
========================================
*异步任务
*包含了Handler,Message,消息,线程
*如果创建启动多个异步任务,默认只有一个线程依次执行
*如果希望多个异步任务并行处理.,
executeOnExecutor(Executer)
executeOnExecutor(Executor,....)
---------------------------------------------------------
doInBackground(....)工作线程中执行
publishProgress(...)在doInBackground()中调用发布进度
onProgressUpdate(...)在主线程中执行,更新UI
onPostExecute(....)在主线程执行,处理最终结果
cancel(true)取消当前正在执行的任务
ListView
===================================
*需要一个Adapter来提供条目视图
*Adapter 需要数据列表和条目视图的布局文件
*生成条目视图时:
新建布局视图实例LayoutInflater.
取出一项数据
将数据放入视图显示
将视图交给ListView显示
BaseAdapter
==========================================
*抽象父类
*方法:
getCount()
表示数据的数量即条目数量
ListView 会调用adapter.getCount()来确定,总共要显示多少个条目
getItem(position)
获得指定位置的条目视图
负责创建条目视图,交给ListView;
ListView 要显示其中一个条目时会调用adapter.getItem(下标)
来获得一个条目视图显示.
*****可变长参数和普通参数共存时,可变长参数必须放在最后.
a(int ....param1,int param2);
===========================复习===============================
创建消息
Message m=new Message()
Message m=Message.obtain(handler,what,arg1,arg2,obj);//缓存可以直接修改数据使用
Message m=Message.obtain(handler,new Runable(){public void run(){.....}}
handler.obtainMessage(what,arg1,arg2,obj)
handler.post(new Runable(){public void run()[]})//直接发送携带代码的消息
发送
handler.sendMessage(m)
Message.obtain(...).sendToTarget();
handler.obtainMessage(.......).sendTotarget()
handler.sendEmptyMessage(what)
handler.post(Runable)
处理
1,Message的回调,Runable的run();
2,handler的回调,boolean handleMessage() true(不再执行3)
3,handler子类重写的handmessage()
============================AsyncTask===========================
doInbackground() 工作线程
onpostExecute()主线程
publishProgress()工作线程中调用
onprogressUpdate()在主线程显示进度.