Handler(Android)关键词剖析

满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述Handler(Android)关键词剖析相关的知识,希望能为你提供帮助。

  • Handler
一套消息传递机制,应用于多线程场景。
  • ThreadLocal
ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。
ThreadLocal保证一个线程对应一个Looper,同时各个线程之间的Looper互不干扰。
  • Looper
Looper线程维护一个消息队列;
Looper线程中创建Handler对象才有意义,普通线程不能创建(具体使用Looper.prepare()、Looper.loop())
  • Message
【Handler(Android)关键词剖析】待执行的消息被封装成Message对象,Message添加到MessageQueue。
  • post系列方法
post系列方法对应sendMessage系列方法,sendMessage需结合handleMessage方法使用,post可直接处理; 针对不同的需求,使用这两种不同的发送方式。
  • WeakReference
Handler使用时,为避免内存泄漏发生,往往需要结合弱引用进行控制。
private static class BetterHandler extends Handler {private WeakReference< Activity> mActivityWeakReference; public BetterHandler(Activity activity) { mActivityWeakReference = new WeakReference< > (activity); }@Override public void handleMessage(Message msg) { super.handleMessage(msg); if (mActivityWeakReference.get() != null) { Log.d(TAG, "handleMessage: "); } } }




    推荐阅读