【Android】【异步消息处理机制】Message,MessageQueue,Looper,Handler
2018-03-18 16:10
579 查看
Message,MessageQueue,Looper,Handler
Message封装消息标识和消息处理需要的参数
MessageQueue用于存储多个消息,保证消息可以按顺序串行执行
Looper用于从MessageQueue中取出消息,然后交给Handler处理
Handler用于发送消息和处理消息
Looper通过Looper.prepare方法来创建,通过Looper.loop来启动,通过Looper.quit来停止
Looper.loop是个阻塞方法,这个方法会一直循环取消息,然后交给Handler处理,只有Looper.quit被调用后才会停止
Looper在哪个线程创建的,就属于哪个线程
一个线程最多只能有一个Looper,可以通过Looper.myLooper获取当前线程的Looper
手动创建的Looper,在Activity销毁前,一定要调用Looper.quit来停止,否则会一直循环取消息
主线程默认就已经创建了一个MainLooper,可以通过Looper.getMainLooper获得,不需要再通过Looper.prepare来创建
主线程的所有任务,都是执行在MainLooper.loop方法的循环之中的,所以从loop方法内部来看,是永不阻塞的
Android系统是由事件来驱动的,loop方法不断取消息来处理,当主线程的MainLooper.loop退出了,APP也就结束了
Handler对应着一个Looper,一个Looper可以负责多个Handler
Handler在new的时候就会绑定Looper,如果没有指定,默认绑定当前线程的Looper
Handler对应的Looper属于哪个线程,Handler的消息处理就在哪个线程里执行
Handler执行完一个消息,才会继续取下一个消息,所以不同消息是按发送顺序串行执行的
Message封装消息标识和消息处理需要的参数
MessageQueue用于存储多个消息,保证消息可以按顺序串行执行
Looper用于从MessageQueue中取出消息,然后交给Handler处理
Handler用于发送消息和处理消息
Looper通过Looper.prepare方法来创建,通过Looper.loop来启动,通过Looper.quit来停止
Looper.loop是个阻塞方法,这个方法会一直循环取消息,然后交给Handler处理,只有Looper.quit被调用后才会停止
Looper在哪个线程创建的,就属于哪个线程
一个线程最多只能有一个Looper,可以通过Looper.myLooper获取当前线程的Looper
手动创建的Looper,在Activity销毁前,一定要调用Looper.quit来停止,否则会一直循环取消息
主线程默认就已经创建了一个MainLooper,可以通过Looper.getMainLooper获得,不需要再通过Looper.prepare来创建
主线程的所有任务,都是执行在MainLooper.loop方法的循环之中的,所以从loop方法内部来看,是永不阻塞的
Android系统是由事件来驱动的,loop方法不断取消息来处理,当主线程的MainLooper.loop退出了,APP也就结束了
Handler对应着一个Looper,一个Looper可以负责多个Handler
Handler在new的时候就会绑定Looper,如果没有指定,默认绑定当前线程的Looper
Handler对应的Looper属于哪个线程,Handler的消息处理就在哪个线程里执行
Handler执行完一个消息,才会继续取下一个消息,所以不同消息是按发送顺序串行执行的
相关文章推荐
- Android异步消息处理机制,深入理解Handler(MessageQueue、Message、Looper)
- Android线程之异步消息处理机制(二)——Message、Handler、MessageQueue和Looper
- Android 异步消息处理机制 Handler、Looper、Message、MessageQueue之藕断丝连
- Looper、Message、MessageQueue、Handler异步消息处理机制源码分析
- Android 消息处理机制(Looper、Handler、MessageQueue,Message)
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- 源码角度讲解Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android 异步消息处理机制:Looper、Handler、Message
- Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- android消息处理机制学习(二)-Handler,Message,MessageQueue,Looper图例讲解
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android 消息处理机制(Looper、Handler、MessageQueue,Message)
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android消息处理机制(Handler、Looper、MessageQueue与Message)
- Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
- [Android] 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
- android消息处理机制学习(三)-Handler,Message,MessageQueue,Looper源码分析
- Android 异步消息处理机制Looper、Handler、Message三者关系