有人可以解释为什么有人应该使用Android Looper功能来创建“管道线程”而不是制作一个从BlockingQueue中提取任务的普通线程吗?从表面上看,似乎有两种方法可以做同样的事情。
答案 0 :(得分:4)
BlockingQueue允许您拥有多个消费者和生产者,而Looper机制允许您拥有多个生产者,但只有一个消费者。
因此,在Looper线程中,您一次只执行一个任务(可运行)。创建了looper机制,因此您可以轻松地在UI线程上执行runnables(封装为消息的任务)(作为单个线程运行,因此将其视为单个线程使用者)
Looper / Handler还提供延迟执行任务的功能,BlockingQueue开箱即用。同样,这在UI工具包的上下文中也很重要。