面试: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中取出消息。