Handler消息机制是Android里面很基础的东西,基本上属于必考题
一般会从如下几个方面来考查
- 实现原理,Handler/Message/MessageQueue/Looper 几个类的实现流程,
- Handler导致的内存泄露怎么处理
- 主线程的Looper是什么时候创建的;如果不使用主线程的Looper,有哪些方案;
- Looper可以退出吗,Looper里面的循环,会卡死主线程吗
- postMessageDelay怎么实现的
针对问题1,大部人都知道 android Handler消息机制实现原理。如果连这个都不知道,就感觉有点业余了
针对问题2,属于比较常见的场景,能说清楚就行
针对问题3,大部人也都知道是在ActivityThread里面创建的。不使用主线的Looper有2种方案
- 自己实现Looper,能说清楚里面的关键方法
- 继承自HandlerThread
针对问题4,深入了解的话,需要对epoll机制有一些了解,跟进到jni层的实现
针对问题5,面试字节的时候被问的一个题目,当时回想了下框架的代码,发现只有一个计算时长的,但是具体是在哪个地方处理的,还不知道。android Handler sendMessageDelayed实现原理