【Android】在线程中使用Handler

Handler类的主要作用有两个:

(1)在新启动的线程中发送消息;

(2)在主线程中获取、处理消息。

每个线程中只有一个Looper, 负责管理MessageQueue, 它的loop方法会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。

MessageQueue由Looper负责管理,采用先进先出的方式来管理Message。 Handler能把消息发送给Looper管理的MessageQueue,并负责处理Looper分给它的消息。

主UI线程中,系统已经初始化了一个Looper对象,所以可直接创建Handler即可;而程序员自己启动的子线程,必须自己创建一个Looper对象,并启动它。

步骤如下:

(1)调用Looper.prepare()方法为当前线程创建Looper对象,创建Looper对象时,它的构造器会创建与之配套的MessageQueue.

(2)创建Handler子类的实例,重写handleMessage()方法,负责处理来自其他线程的消息。

(3)调用Looper.loop()方法启动Looper。

每个线程只能拥有一个Looper.它 的Loop方法负责读取MessageQueue中的消息,读到消息之后就把消息交给发送该消息的Handler处理。

你可能感兴趣的:(【Android】在线程中使用Handler)