2 、Handler消息机制
.MessageQueue
MessageQueue是消息队列的意思,它主要用来存放通过 Handler发送的消息。通过 HandlerMessageQueue发送的消息会存在中等待处理。它是一个按 Message的when排序的优先级队列。(when:代表着被处理的时间
.Looper
LooperMessageQueue是每个线程中的的管家。调用 Looper的loop(方法后,就会进入到一个无线循环中然后一发现 MessageQueue中存在一条消息,就会将它取出,并传递到 HandlerHandle的方法中
Handler
Handler主要用于发送消息和处理消息一般使用对象的 sendMessage(方法发送消息,消息经过一系列处理后,最终会传递到
HandlerhandlerMessage方法中发送即时消息: sendMessageMessage msg
发送延时消息: sendMessageDelayedMessage msg. long time)处理消息 handleMessageMessage msg回调方法移除还未处理的消息: removeMessagesint what)
2、AsyncTask
为了方便子线程中对U进行操作, Android提供了一些好用的工具类到主线程,它的原理也是基于异步消息处理机制的AsyncTaskAsyncTask就是其中之一。借助,可以十分简单地从子线程切换
AsyncTask是一个抽象类,它有三个泛型参数,分别如下所示:
Params:执行异步任务时需要传入的参数,用于后合任务中使用
Progress后台任务执行时,如果需要在界面上显示当前的进度,则使用该参数作为进度单位
Result:当任务执行完毕后,如果需要对结果进行返回时,则使用该参数作为返回值类型