Windows是不是每个线程都有消息队列的问题
2个回答
展开全部
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道 理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过 Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环)。本文深入介绍一下 Android消息处理系统原理。
前面提到Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列和一个消息循环 (Looper),特定线程的消息只能分发给本线程,不能进行跨线程,跨进程通讯。但是创建的工作线程默认是没有消息循环和消息队列的,如果想让该线程具 有消息队列和消息循环,需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。
前面提到Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列和一个消息循环 (Looper),特定线程的消息只能分发给本线程,不能进行跨线程,跨进程通讯。但是创建的工作线程默认是没有消息循环和消息队列的,如果想让该线程具 有消息队列和消息循环,需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。
展开全部
悉Windows编程朋友能知道Windows程序消息驱并且全局消息循环系统Android应用程序消息驱按道 理说应该提供消息循环机制实际谷歌参考Windows消息循环机制Android系统实现消息循环机制Android通 Looper、Handler实现消息循环机制Android消息循环针线程(每线程都自消息队列消息循环)本文深入介绍 Android消息处理系统原理
前面提Android系统消息队列消息循环都针具体线程线程存(存)消息队列消息循环 (Looper)特定线程消息能发给本线程能进行跨线程跨进程通讯创建工作线程默认没消息循环消息队列想让该线程具 消息队列消息循环需要线程首先调用Looper.prepare()创建消息队列调用Looper.loop()进入消息循环
前面提Android系统消息队列消息循环都针具体线程线程存(存)消息队列消息循环 (Looper)特定线程消息能发给本线程能进行跨线程跨进程通讯创建工作线程默认没消息循环消息队列想让该线程具 消息队列消息循环需要线程首先调用Looper.prepare()创建消息队列调用Looper.loop()进入消息循环
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |