Handler 消息传递机制 AsyncTask 异步任务 小结

Handler类的主要作用 :
(1) 在新启动的线程中发送消息
(2) 在主线程中获取,处理消息

Handler  Looper  MessageQueue的工作原理
Handler工作组件介绍 :
Message : Handler接收和处理消息的对象
Looper : 每个线程只能拥有一个Looper. loop方法负责读取MessageQueue中的消息, 读到信息之后就把消息交给发送该消息的Handler进行处理
MessageQueue : 消息队列,它采用先进先出的方式来管理Message. 程序创建Looper对象时, 会在它的构造器中创建MessageQueue对象

步骤 : 
新线程创建Handler对象时,必须先创建Looper,因此在新线程中程序先调用Loop的prepare方法为当前线程创建一个Looper实例,并创建配套的MessageQueue.新线程有了Looper对象之后,再创建Handler对象,程序最后再调用Looper的loop方法.

为了解决新线程不能更新UI组件的问题,Android提供了如下几种解决方案 :
(1) 使用Handler实现线程之间的通信
(2) Activity.runOnUiThread(Runnable)
(3) View.post(Runnable)
(4) View.postDelayed(Runnable, long)

使用AsyncTask时必须遵守如下规则 :
(1) 必须在UI线程中创建AsyncTask的实例
(2) 必须在UI线程中调用AsyncTask的execute()方法
(3) AsyncTask的onPreExecute(),onPostExecute(Result result),doInBackground(Params... params),onProgressUpdate(Progress... values)方  
     法,不应该由程序员代码调用,而是由Android系统负责调用
(4) 每个AsyncTask只能被执行一次,多次调用将会引发异常













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值