已采纳回答 / yjblyl
我的理解是:Looper只是一个轮询器,它不断轮询messageQueue里面是否有消息,没有消息则处于等待状态,如果有消息,就从messageQueue抽取消息,交给Handler去处理。真正处理消息的是Handlerl对象里面的handlerMessage()方法。
2016-03-04
已采纳回答 / Jannina
我解释下过程吧:在oncreate中的handler.postDelayed(myRunnable, 1000);为1秒后执行传入的myRunnable中的run方法。。。1秒过去了,然后进入了run()开始更换了图片,又遇到handler.postDelayed(myRunnable, 1000),然后再等1秒,执行本身的run(),像一层一层深入的感觉。
2016-02-26
已采纳回答 / 不逃课
myThread.handler为空,所以在myThread.start();后面添加Thread.sleep(500);休眠半秒钟 让myThread.handler在run中创建,保证myThread.handler不为空
2015-12-02
已采纳回答 / Violetsl
是的 同一个Thread 不能重复start的。<...图片...>Thread在start之前会检查是否已经start过了,如果是就抛出异常。 如果想实现多次点击的效果,不要用Thread改用Runnable接口。
2015-11-25
已采纳回答 / 烟雨谣
当应用启动,系统会创建一个主线程。这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的UI组件发生交互。所以main thread也叫UI thread也即UI线程。其他线程就是非UI线程。非UI线程可以通过Thread+Handler的方式实现在非UI线程发送消息通知UI线程更新界面。
2015-08-20
已采纳回答 / Forest_Deer
stop键:如果是按老师的代码写的。将removeMessage(1)中的“1”改成“0”即可。原因:该参数为Message的标识,第一次发送的标识为1;而后因Message message=new Message();默认参数为0;以后的Message标识均为0,故remove“0”;send键:再次点击,会开启一个新的主线程和子线程通信循环。多个循环打印都在logCat上,自然就混乱随机了。
2015-08-17