高效备战Handler面试必会知识点
2023-10-18 05:07:43
Handler在Java中的实现
在Java中,Handler是一个用来发送和处理消息的对象,是Android应用程序开发中常用的组件之一。它可以通过HandlerThread来创建Looper,从而形成消息循环,来接收和处理消息。
ThreadLocal MessageQueue异步消息和消息屏障
每个线程都有自己的MessageQueue,Handler将消息发送到MessageQueue中,MessageQueue中的消息会被Looper不断轮询,当消息被轮询到时,Handler会回调对应的方法来处理消息。
异步消息是指在Handler中发送的消息,不会立即被处理,而是会被放入MessageQueue中,等待Looper轮询到时再处理。
消息屏障是指在MessageQueue中设置一个屏障,当屏障后面的消息被轮询到时,会先执行屏障前面的所有消息,然后再执行屏障后面的消息。
MessageQueue.postSyncBarrier
MessageQueue.postSyncBarrier()方法可以设置一个消息屏障,当屏障后面的消息被轮询到时,会先执行屏障前面的所有消息,然后再执行屏障后面的消息。
消息屏障的消费和异步消息的作
当消息屏障被消费时,会执行屏障后面的所有消息。异步消息的作是指在Handler中发送消息,不会立即被处理,而是会被放入MessageQueue中,等待Looper轮询到时再处理。
总结
Handler是Android应用程序开发中常用的组件之一,它可以通过HandlerThread来创建Looper,从而形成消息循环,来接收和处理消息。
MessageQueue是每个线程中存储消息的队列,Handler将消息发送到MessageQueue中,MessageQueue中的消息会被Looper不断轮询,当消息被轮询到时,Handler会回调对应的方法来处理消息。
异步消息是指在Handler中发送的消息,不会立即被处理,而是会被放入MessageQueue中,等待Looper轮询到时再处理。
消息屏障是指在MessageQueue中设置一个屏障,当屏障后面的消息被轮询到时,会先执行屏障前面的所有消息,然后再执行屏障后面的消息。
MessageQueue.postSyncBarrier()方法可以设置一个消息屏障,当屏障后面的消息被轮询到时,会先执行屏障前面的所有消息,然后再执行屏障后面的消息。
当消息屏障被消费时,会执行屏障后面的所有消息。异步消息的作是指在Handler中发送消息,不会立即被处理,而是会被放入MessageQueue中,等待Looper轮询到时再处理。