一个线程中只有一个Looper,一个MessageQueue。handler可以有多个,然后handler postDelayed(),或者sendMessageDelayed()的时候,那消息队列根据队列的先进先出原则,那其他的Message会不会因此而延迟呢?所以就有了下面的测试:

public class LooperMessageQueueActivity extends AppCompatActivity {    private TextView txt;    private Handler h1;    private Handler h2;    private Handler h3;    private Handler h4;    private Handler h5;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_looper_message_queue);        init();    }    private void init() {        txt = (TextView) findViewById(R.id.text);        h1 = new Handler();        h2 = new Handler();        h3 = new Handler();        h4 = new Handler();        h5 = new Handler();    }    public void OnClicked(View view) {        int i = 1;        buildThread(h1, i++);        buildThread(h2, i++);        buildThread(h3, i++);        buildThread(h4, i++);        buildThread(h5, i++);    }    private void buildThread(final Handler h, final int i) {        new Thread(new Runnable() {            @Override            public void run() {                Log.d("Edgar", "t" + i);                h.postDelayed(new Runnable() {                    @Override                    public void run() {                        txt.setText(txt.getText() + "t" + i + "回来啦!\n");                        Log.d("Edgar", "t" + i + "回来啦!\n");                    }                }, 5000 * (5 - i));            }        }).start();    }}

然后出来的结果是:

可以看到log出来的时间,是先把后面的显示出来,这与队列的”先进先出”相悖。从结果上看是并发显示出来的。
为什么会出现这个现象呢?这个需要深挖.
由于看不到MessageQueue.enqueueMessage(msg, uptimeMillis) 里面的源码,所以这个日后再分析

更多相关文章

  1. Android(安卓)Handler学习笔记
  2. Android(安卓)Handler总结1-定义与用法
  3. android:ImageView,访问网上图片并显示出来
  4. 26、Android之Handler异步消息处理机制
  5. 浅析Android中的消息机制
  6. 使Activity以对话框的形式弹出来
  7. Android(安卓)handler使用说明
  8. Android进阶-Android(安卓)Handler消息机制的源码详解
  9. Android省市区三级联动滚轮选择(真实项目中提取出来的组件)

随机推荐

  1. Android——UI篇:ViewPager轮播图控制滑动
  2. 非android的平台获取apk信息
  3. Android进程系列第三篇---SystemServer进
  4. (4.1.12)Android高效加载大图、多图解决
  5. android基础之创建和解析xml
  6. android中自动提示、补全、连接的功能实
  7. Toolbar上overflow的样式自定义详解
  8. Android进阶(十九)AndroidAPP开发问题汇
  9. android模拟器无法启动 找不到设备
  10. Android中计算text文字大小的几个方法