本文含博主理解内容,若有错误,欢迎指正。
handler是一个Android概念,但是也不只用在Android程序里,参考百度百科:https://baike.baidu.com/item/handler机制/3253807?fr=aladdin
可以知道在处理消息(消息也就是系统运行时传递参数的携带者)时,每一个消息对应一个函数去处理它,或发到这里或发到那里,消息里面有很多运行时需要的参数,这些参数存储在一个个结构体(对于Java就是类)里,实例化了结构体之后会将其存在消息池里,handler函数被调用的时候就看看地址池里面有没有实例化好了的,没有就重新实例化一个,有就直接用。
之后在UI主线程查询消息队列的时候,把消息拆包,看里面的参数,对应相应的处理函数(也就是相应的handler函数),并且调用,把消息交给此handler。
总之,handler就是一个处理某一个消息的专用函数,在系统发现对应消息的时候,它被调用。
除了Android,在很多代码里面也能见到handler,经常就是专门的模块间传递信息处理函数。