1.
除mainThread,新创建的线程读没有looper,使用Looper.prepare()创建,同时也创建了MessageQueue
Handler关联于looper,使用Handler的消息发送接口发送消息到关联的Looper的MessageQueue,底层
发送消息的接口是MessageQueue.IdleHandler 可以通过Looper获得 MessageQueue 在设置此接口。
使用Looper.loop() 进行消息的处理。
Message关联与一个Handler,通过此Handler发送到相应的线程的MessageQueue并在那个线程执行。执行的
处理函数为个关联的Handler
Handler也可以发送Runnable到关联的线程。
Handler可以制定消息处理的延时
Handler既是一个发送消息的接口,也是一个处理消息的实体。
Handler 接口:
1。 Create Message
hasMessages(int what)
Check if there are any pending posts of messages with code 'what' in the message queue.
|
postxxx
3。 Send Message
sendXXX
4。删除发送的,但未处理的runnable和message
Messenger实现了在client和service之间传递Message的IBind接口,但是Message中传递的对象有
所要求。
客户在connect service时获得一个Messenger,通过此Messenger发送消息,服务器处理消息。
客户可以把本地的Messenger放在Message中发送给服你务器,服务器可以用此Messenger发送
消息会客户端。参见service的reference