一直对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);
     }

 

 

相关文章:

  • 2022-12-23
  • 2021-11-25
  • 2021-07-28
  • 2021-07-12
  • 2022-01-23
  • 2021-11-29
  • 2021-10-01
  • 2021-04-05
猜你喜欢
  • 2021-06-19
  • 2021-09-04
  • 2022-01-13
  • 2021-05-04
  • 2022-12-23
相关资源
相似解决方案