全面理解Handler-1:理解消息队列,手写消息队列
前言Handler机制这个话题,算是烂大街的内容。但是为什么偏偏重拿出来“炒一波冷饭”呢?因为自己发现这“冷饭”好像吃的不是很明白。最近在思考几个问题,发现以之前对Handler机制的了解是在过于浅显。什么问题?Handler机制存在的意义是什么?能否用其他方式替换?Looper.loop();是一个死循环,为什么没有阻塞主线程?用什么样的方式解决死循环的问题?
这里没有使用Looper这种思想,因为Looper本质就是使用ThreadLocal创建一个和主线程唯一关联的Looper实例,并以此保证MessageQueue的唯一性。知道这个原理之后,这个demo。直接在主线程中newMessageQueue(),是同样的道理,然后调用loop()方法死循环轮询MessageQueue中的Message,不为null则执行。
领取专属 10元无门槛券
私享最新 技术干货