浅谈Android的消息处理机制--Handler

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dongfnag_HU/article/details/85008869

1.为什么有Handler?

在UI线程中不能进行耗时操作,例如数据读写、网络请求、图片加载等,所以这些操作被放在子线程里,Handler便是子线程和UI线程之间通信的桥梁之一

2.干什么用的?

进行异步消息处理,即上述内容。

3.Handler类里面有什么是必须知道的?

3.1  消息类 : Message类

主要功能是进行消息的封装,同时可以指定消息的操作形式,Message类定义的部分变量如下:

(1)public int what:变量,用于定义此Message属于何种操作

(2)public Object obj:变量,用于定义此Message传递的信息数据,通过它传递信息

3.2   Looper类

主要功能是管理我们通过Handler发送出去的信息(即Message),主要方法如下:

(1)Looper()

该方法主要是建立了一个队列(queue),用来存储Message。

(2)prepare()

该方法首先检查当前线程是否已经拥有一个Looper(一个线程只能拥有一个Looper)。如果没有,通过set()方式,将一个Looper与线程相关联,即:set(new Looper())。

(3)loop()

该方法循环的将消息队列中的消息取出,交给Handler对象处理。

4.使用Handler有什么需要注意的吗?

那应该就是在UI线程里和子线程里使用Handler的方式不同,即UI线程会自动创建Looper对象,我们只需要使用Handler发送处理消息就好了,而在子线程中需要我们手动的创建Looper对象。

5.来个栗子可好?

传送门:http://www.runoob.com/w3cnote/android-tutorial-handler-message.html

6.我想详细的了解Handler怎么办?

传送门:https://blog.csdn.net/garyhu1/article/details/54573548

猜你喜欢

转载自blog.csdn.net/Dongfnag_HU/article/details/85008869