目录
二.一个线程中最多有多少个Handler,Looper,MessageQueue?
三.Looper死循环为什么不会导致应用卡死,会耗费大量资源吗?
十.既然可以存在多个Handler往MessageQueue中添加数据(发送消息时各个Handler可能处于不同线程),那它内部是如何确保线程安全的?
十一.使用Handler的postDelay或者sendMessageDelayed后消息队列有什么变化?
十三.MessageQueue 提供了 add/remove IdleHandler 的方法,是否需要成对使用?
十四.当 mIdleHanders 一直不为空时,为什么不会进入死循环?
十五.是否可以将一些不重要的启动服务,搬移到 IdleHandler 中去处理?
十六.IdleHandler 的 queueIdle() 运行在那个线程?
常见面试题:
Handler相关
一.谈一谈你对handler的认识,例如:机制和实现等。
handler机制图解:
handler常见使用过程:
①.子线程向主线程发送消息:
- 在主线程中新建Handler实例,并重写handleMessage