面试:Handler的工作原理是怎样的?handlerpost和viewpost区别?
面试:Handler的工作原理是怎样的?
Handler机制工作原理:

Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四个部分。但我们在日常开发中,经常都只会用到 Handler 和 Message 两个类。Message 负责消息的搭载,里面有个 target 用于标记消息,obj 用于存放内容,Handler 负责消息的分发和处理。
handlerpost和viewpost区别?
handlerpost和viewpost是两个常用的Java线程模型,它们之间最主要的区别在于执行上下文的不同。
handlerpost是在UI线程中运行的,主要用于发送消息到UI线程进行处理,例如更新UI元素等任务;而viewpost则是在非UI线程中运行的,主要用于发送消息到UI线程进行处理,例如从后台线程向UI线程发送通知等任务。两个线程模型的适用场景不同,开发者可以根据实际需要选择合适的线程模型来实现相应的功能。
区别是
根据 ViewRootImpl 是否已经创建,View.post() 会执行不同的逻辑。如果 ViewRootImpl 已经创建,即 mAttachInfo 已经初始化,直接通过 Handler 发送消息来执行任务。如果 ViewRootImpl 未创建,即 View 尚未开始绘制,会将任务保存为 HandlerAction,暂存在队列 HandlerActionQueue 中,等到 View 开始绘制,执行 performTraversal() 方法时,在 dispatchAttachedToWindow() 方法中通过 Handler 分发 HandlerActionQueue 中暂存的任务。
springmvc中handler是什么?
HandlerMapping是URL和对应要执行代码段关系的集合。如当请求发生时, DispatcherServlet 将请求递交给 hangler mapping, 让其检测请求并提出一个合适的 HandlerExecutionChain.DispatcherServlet 将执行该处理器和拦截器。
handler机制的原理?
关于这个问题,Handler机制是Android中一种重要的消息处理机制,其原理是:
1. Handler实例化时会与一个Looper对象绑定,Looper对象是一个消息循环器,负责不断地从MessageQueue中取出消息。
版权声明
本文仅代表作者观点,不代表木答案立场。
