码迷,mamicode.com
首页 > 移动开发 > 详细

Handler(Android)关键词剖析

时间:2020-10-31 01:16:50      阅读:22      评论:0      收藏:0      [点我收藏+]

标签:封装   添加   结合   才有   消息传递机制   两种   访问   ext   local   

  • Handler

    一套消息传递机制,应用于多线程场景。  

  • ThreadLocal

    ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get或set方法访问)时能保证各个线程里的变量相对独立于其他线程内的变量。

    ThreadLocal保证一个线程对应一个Looper,同时各个线程之间的Looper互不干扰。

  • Looper

    Looper线程维护一个消息队列;

    Looper线程中创建Handler对象才有意义,普通线程不能创建(具体使用Looper.prepare()、Looper.loop())

  • Message

    待执行的消息被封装成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: ");
            }
        }
    }

  

  

Handler(Android)关键词剖析

标签:封装   添加   结合   才有   消息传递机制   两种   访问   ext   local   

原文地址:https://www.cnblogs.com/heibingtai/p/13885107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!