第一次接触android应用程序(这里指的是JAVA层的UI程序,也难怪了,Google放出的API就只支持JAVA应用程序了),很难搞明白内部是如何实现的。但是,从原理上分析,应该是有一个消息循环,一个消息队列,然后主线程不断得从消息队列中取得消息并处理之。

然而,google封装得太厉害了,所以一时半会还是搞不清楚到底是怎么做的。本文将分析android内的looper,这个是用来封装消息循环和消息队列的一个类,handler其实可以看做是一个工具类,用来向消息队列中插入消息的。好比是Windows API的SendMessage中的HANDLE,这个handle是窗口句柄。

那怎么往这个消息队列中发送消息呢??调用looper的static函数myQueue可以获得消息队列,这样你就可用自己往里边插入消息了。不过这种方法比较麻烦,这个时候handler类就发挥作用了。先来看看handler的代码,就明白了。

讲了这么多,该怎么创建和使用一个带消息循环的线程呢?

好了,handler和looper的分析就都这了,其实原理挺简单的。

更多相关文章

  1. android系统中的多线程(一): 关于在android中启动线程以及线程间
  2. Android中消息系统模型和Handler Looper
  3. Android开发实践:基于命令模式的异步任务线程
  4. 学习Android线程模型解析(包括UI的更新)
  5. Android Studio——为什么说android UI操作不是线程安全的
  6. Android中Handler的使用方法——在子线程中更新界面

随机推荐

  1. 自己看的,随便写,贴。关于Android里面的Sty
  2. iOS 7 需要再和 Android(安卓)比比什么?
  3. Android实现自定义广播
  4. 从零学Android(四)、适配不同的Android设备
  5. Android(安卓)Canvas类介绍和Android(安
  6. 使用jni接口完成android本地程序的运行--
  7. 客觀評 Android、iOS、WP7
  8. 框架模式 MVC 在Android中的使用
  9. Android系统触摸屏的校正——http://carv
  10. 移动语音引擎相关开发笔记