day28安卓线程

本文详细介绍了Android开发中AsyncTask的使用方法及其生命周期回调函数,包括doInBackground、onPostExecute、publishProgress与onProgressUpdate等。同时,也深入解析了ListView的工作原理及BaseAdapter的实现方式。

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

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()在主线程显示进度.











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值