Android之Handler有感(一)

一直对Handler有所疑惑,今天做出决心要搞懂,现在粗略讲讲心得。

Handler拥有两个队列,一个是放线程的队列,我们就暂且叫做线程队列;而另外一个是放消息的队列,我们暂且叫做消息队列。

创建线程的方法在Java当中有两种,一种是继承Thread而另外的一种则是实现Runnable。在Android中我们比较常用的是实现Runnable,然后可以通过Handler的post方法或者是postDelayd方法把线程添加到线程队列当中。当需要停止的时候的是调用Handler的removeCallBacks方法。

说道消息队列,我们通过在Runnable中Handler的obtainMessage获得Message对象,然后通过Handler的sendMessage方法把消息压入到消息队列当中,最后通过复写Handler里面的HandlerMessage方法取得message来进行相应的处理。 以下就是大概的流程:

 
handler.post(runnable);
Handler handler = new Handler(){
    public void handlerMessage(Message msg){
    handler.post(runnable);
    } 

Runnable runnable = new Runnable(){
    public void run(){
         Message message = handler.obtainMessage();
         handler.sendMessage(message);
     }
 
原文地址:https://www.cnblogs.com/lee0oo0/p/2423437.html