Handler的post()和handleMessage()方法的疑惑 为了不让帖子沉下去,Up by myself... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就是说post的线程和send的消息都是发送到一个队列里的喽?也就是post方法调用后在handleMessage方法也会被执行的? 刚刚看了一下源码,发现post和sendMessage其实都是发送到一个消息队列里去的,因为都是调用的sendMessageDelay方法,只不过post调用sendMessageDelay方法的时候传的参数为getPostMessage(r)而已。而且在第一次调用post方法后的确执行了handleMessage方法,但是却没有执行run方法,如果在handleMessage方法中再调用post方法后能执行一次run方法,但是好像post却没有再往消息队列中发送消息,因为后面就不再执行handleMessage方法了,也就不会一直这样反复下去了……为什么呢? 我也想知道。。 而且我还想知道handleMessage的调用规则。。 是在有sendMessage之类的方法被调用后Handler就会自动调用handleMessage吗? 那如果我在handleMessage中调用sendMessage方法是不是就成为一个递归了? handleMessage()里面调用sendMessage()应该会报错吧,有没有试过? 1. 一个Handler只有一个队列;2. 在调用Handler.post(Runnable runnable)方法时,会将runnable封装成一个Message;3. 在队列执行时,会判断当前的Message里是否封装了Runnable,如果封闭了,就直接执行Runnable,如果没有,将当前的Message传递给handleMessage(Message msg)处理;4. Handler在实例化的时候可以设置一个callback<Handler.Callback>,callback也有一个handleMessage(Message msg)方法,如果步骤3中的Handler有callback,那么调用的是callback的handleMessage(Message msg),否则调用自身的handleMessage(Message msg)。 也就是说,想产生递归效果,是要在Runnable里post(Runnable runnable),或者在handleMessage()里sendMessage(),交错调用就会断片。 自定义照相机带来的不可兼容问题 AutoCompleteTextView控件 关于Email同步,请高手指教 SDK创建的600x1024分辨率模拟器打不开。。 新建项目无法调试 Activity onStop自动执行!!!!!!请教各位!!! 关于canvas画2D图形的问题 新人HelloAndroid onCreate 空指针错误 [福音][散发]从github下载Android最新源码 Android studio 里面方法明明被调用了,却显示没有被调用!!! xmpp 消息问题 请高手解决 android中ListView能不能实现抬起事件,只有点击无抬起
2. 在调用Handler.post(Runnable runnable)方法时,会将runnable封装成一个Message;
3. 在队列执行时,会判断当前的Message里是否封装了Runnable,如果封闭了,就直接执行Runnable,如果没有,将当前的Message传递给handleMessage(Message msg)处理;
4. Handler在实例化的时候可以设置一个callback<Handler.Callback>,callback也有一个handleMessage(Message msg)方法,如果步骤3中的Handler有callback,那么调用的是callback的handleMessage(Message msg),否则调用自身的handleMessage(Message msg)。