西安网站群搭建,淘宝营销推广方案,2017网站备案抽查,做网页游戏网站在面试过程中#xff0c;怎么区分中级#xff0c;高级#xff1f;
问:说一说handler机制#xff1f;
答一: handler是Android系统中的消息机制#xff0c;内部包括looper,messagequeue,message。
答二: 应用启动是从 ActivityThread 的 main 开始的#xff0c;先是执行…在面试过程中怎么区分中级高级
问:说一说handler机制
答一: handler是Android系统中的消息机制内部包括looper,messagequeue,message。
答二: 应用启动是从 ActivityThread 的 main 开始的先是执行了 Looper.prepare()该方法先是 new 了一个 Looper 对象在私有的构造方法中又创建了 MessageQueue 作为此 Looper 对象的成员变量Looper 对象通过 ThreadLocal 绑定 MainThread 中
当我们创建 Handler 子类对象时在构造方法中通过 ThreadLocal 获取绑定的 Looper 对象并获取此 Looper 对象的成员变量 MessageQueue 作为该 Handler 对象的成员变量
在子线程中调用上一步创建的 Handler 子类对象的 sendMesage(msg) 方法时在该方法中将 msg 的 target 属性设置为自己本身同时调用成员变量 MessageQueue 对象的 enqueueMessag() 方法将 msg 放入 MessageQueue 中
主线程创建好之后会执行 Looper.loop() 方法该方法中获取与线程绑定的 Looper 对象继而获取该 Looper 对象的成员变量 MessageQueue 对象并开启一个会阻塞不占用资源的死循环只要 MessageQueue 中有 msg就会获取该 msg并执行 msg.target.dispatchMessage(msg) 方法msg.target 即上一步引用的 handler 对象此方法中调用了我们第二步创建 handler 子类对象时覆写的 handleMessage() 方法。
如何判断你是高级这需要你能从系统从原理从背景能把一个问题说清楚。
回答问题的套路
1、该问题的背景来源
2、该问题的原理
3、该问题在平时开发过程中的应用
4、该问题在开发过程中有没有什么问题需要怎么避免。