作者:百脑汇_惠州店_909 | 来源:互联网 | 2023-06-25 09:36
大家应该都知道,在android中子线程是无法进行UI操作的,如果想要使得主线程能够操作UI元素,我们应该怎么做呢?针对于这个我简单的讲解一下android中消息队列机制。消息队列
大家应该都知道,在android中子线程是无法进行UI操作的,如果想要使得主线程能够操作UI元素,我们应该怎么做呢?针对于这个我简单的讲解一下android中消息队列机制。
消息队列机制(如上图所示)
*主线程创建时,系统会同时创建消息队列对象(MessageQueue)和消息轮询器对象(Looper)
* 轮询器的作用,就是不停的检测消息队列中是否有消息(Message)
* 消息队列一旦有消息,轮询器会把消息对象传给消息处理器(Handler),处理器会调用handleMessage方法来处理这条消息,handleMessage方法运行在主线程中,所以可以刷新ui
* 总结:只要消息队列有消息,handleMessage方法就会调用
* 子线程如果需要刷新ui,只需要往消息队列中发一条消息,触发handleMessage方法即可
* 子线程使用处理器对象的sendMessage方法发送消息
希望以上的讲解,能帮到大家!