概述
Android的消息机制主要是指Handler运行机制,Handler是作为Android开发者必知必会的一个知识点,也是初中高级面试都会被问到的一个知识点。
基本使用
1、在主线程中创建使用handler
val handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
}
}
handler.sendMessage(handler.obtainMessage(1))
2、在子线程中创建handler
Thread(){
Looper.prepare()
val handler = object: Handler(){
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
}
}
Looper.loop()
}.start()
源码分析
相信大家看完了Handler的使用之后会存在很多的疑问,包括我很早之前也有这个疑问,今天就从源码的角度来分析并解析心中存在的疑问。
先提出来我们想要探究的问题
- 为什么主线程创建的时候不需要使用
Looper.perpare()
和Looper.loop()
方法 - 线程和
handler
以及Looper
是什么样的对应关系呢?一个线程能否创建存在多个Looper
对象? - 主线程中使用
Handler
进行倒计时是否可靠?
好了,接下来上主菜