Android HandlerThread 解析

2019-05-14  本文已影响0人  dashingqi

简介

HandlerThread基本用法

  //1. 创建一个HandlerThread,
  //其中name是一个标记,声明线程名字,因为HandlerThread直接继承至Thread
  HandlerThread mHandlerThread = new HandlerThread("name");
  //2. 开启ThreadHandler,调用start()最终会回调内部实现的run方法。
 mHandlerThread.start(); 

  //3. 在Ui线程中声明一个UI线程中的Handler
  Handler uiHandler = new Handler();
  
  //4. 声明一个工作线程的Handler, 重写handleMessage方法。
   Handler mWorkHandler = new Handler(mHandlerThread.getLooper()){
        handleMessage(Message msg){
        //此时这个handleMessage方法是运行在HandlerThread线程中的。(反正不是UI线程中的)
        
          // 6.  调用UI线程的Handler来更新UI
          uiHandler.post(new Runnable(){
                  run(){
                      //更新UI
                    }  
          })
        
      }
  }

  //5. 调用工作线程发送消息
    Message msg = Message.obtain();
    msg.what = 1;
    msg.obj = "Hello World";
    mWorkHandler.sendMessage(msg)

源码解析

HandlerThread的源码分析就按照用法的顺序来进行分析了

因为HandlerThread继承Thread调用start最终会回调run所以我们看内部的run方法就行。

问题记录

上一篇 下一篇

猜你喜欢

热点阅读