标签:关键词 WeakReference handleMessage Handler 线程 Looper Android Message
- 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: "); } } }
标签:关键词,WeakReference,handleMessage,Handler,线程,Looper,Android,Message 来源: https://www.cnblogs.com/heibingtai/p/13885107.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。