关于handler的问题求解 ui线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 注意这一行Looper.prepare();如果你把Looper.prepare()注释掉看看是什么结果,一定会报错的 是啊,这行不是创建一个looper来接受消息队列里的消息么,可是这个是在子线程中啊,还是和ui线程联系不起来啊? 额,我也不懂,哈哈,怎么和你说了,你了解messagequeen,handle,message,looper不,去看下相关的,无论主线程和子线程都公用一个messagequeen,一个主线程的Handler物件,当做Listener去让子线程能将讯息Push到主线程的Message Quene里,以便触发主线程的handlerMessage()函数,让主线程知道子线程的状态,并在主线程更新UI。 子线程并没有操作UI线程,代码中子线程用来求素数。Looper.prepare()/Looper.loop() 是用来启动一个线程的事件循环,只有这样,才可以在线程中使用 Handler(它依赖事件循环)。UI线程在按钮按下时发送消息给子线程,子线程收到消息后开始求素数,求完后使用 Toast 显示。Handler在这里的作用,仅仅是在UI线程和工作线程之间通信。handleMessage() 是运行在工作线程中的。博文决赛,投我一票,谢谢。 额,请问handler难道不是定义在子线程中的吗?那他是如何与主线程通信的呢?既然handleMessage() 是运行在工作线程中的,那么他还怎么和ui线程有联系呢? 关于如何使用handler,其实本质上就是线程间通信,handler使用的是异步机制,子线程与主线程之间通信是异步的。handler有两个作用:1、发送消息到Loop中的MessageQueue;2、处理Message。它的内部有一个MessageQueue消息队列用于存放handler发送的所有消息,Loop管理MessageQueue,并将消息一个一个地推给handler,handler接收到消息,然后就可以做处理了。这是handler的原理,你可以看一下源码部分,解释的非常清楚。 也就是说handler不管在哪个线程都能修改UI线程的是吗? 回复8楼的,修改UI线程,只能在UI线程里进行,使用handler是为了在子线程中与UI线程之间建立通信机制,这样子线程可以发送消息到UI线程,通知UI线程做UI修改。 android 中ping功能的使用 求助:有关输入流关闭的问题 android客户端与服务器servlet通信的一个问题,求解惑。。。 跪求各位大哥,这个要怎么实现? 【散分】提前祝大家新年快乐~~ 求教,能不能在监听器类中实现弹出对话框呀?(在线等) SlidingMenu 使用时候Fragment和布局visibility择优选择 问一下有人知道如何获取手机话筒和喇叭的输入输出流么,谢谢 ListView点击事件怎样获取点击项的ID或信息? 新手求助,android studio 安装时,提示找不到JDK android定位信息比对 使用git clone 时 出错
Looper.prepare();
如果你把Looper.prepare()注释掉看看是什么结果,一定会报错的
Looper.prepare()/Looper.loop() 是用来启动一个线程的事件循环,只有这样,才可以在线程中使用 Handler(它依赖事件循环)。
UI线程在按钮按下时发送消息给子线程,子线程收到消息后开始求素数,求完后使用 Toast 显示。Handler在这里的作用,仅仅是在UI线程和工作线程之间通信。handleMessage() 是运行在工作线程中的。博文决赛,投我一票,谢谢。