Handler 消息处理器

来源:互联网 发布:东莞淘宝美工培训学校 编辑:程序博客网 时间:2024/05/16 07:02

Handler 消息处理器

Handler可以支持发送和处理以之关联的Runnable和Thread的通讯和消息,比如MessageQuene。每个Handler都有一个单独的Thread和对应的消息队列。

当你创建一个Handler的时候,它就会绑定一个线程和一个消息队列,从创建开始,它(Handler)就可以发送消息给线程对应的消息队列,Handler在收到消息的时候进行对应的操作,然后Handler的消息队列会删除对应的消息。

 

这里Handler有两个主要使用用途:

1、绑定Runnable到Handler的线程里,然后根据消息执行对应的操作,2、在不同线程之间进行通讯的操作

 

 

绑定Runnable和发送消息对应操作的方法有,post、postAtTime、postDelayed、sendEmptyMessage、sendMessage、sendMessageAtTime、sendMessageDelay,

post方法允许你插入一个Runnable对象到调用处(Handler)的消息队列里面,sendMessage允许你插入一个包含Bundle的Message对象到SubHandler消息队列里面,这个SubHandler是处理消息返回的Handler的子类

 

当你提交请求或发送消息到Handler,你可以让消息队列立即处理,也可以设置一个超时,等超时了才执行。

 

 

当你的应用程序启动的时候,同时也会创建一个进程,然后进程的主线程就会专门运行一个消息队列来管理最顶层的应用对象,如activityBroadcastReceiver等,以及他们创建的任何窗口。你也可以创建自己的线程,然后通过Handler跟主线程进行通讯,这就可以用到前面说的postsendMessage方法,不过这是绑定新线程或者在新线程里面发消息。提交请求或发消息后,这些RunnableMessage就会在适当的时候处理消息或者执行对应的操作

0 0
原创粉丝点击