Android Looper和Handler分析(16)

来源:未知 责任编辑:责任编辑 发表时间:2014-04-20 03:36 点击:

  Looper.loop();开启消息循环 

 
 ThreadWithMessageHandle  threadWithMgs = new ThreadWithMessageHandle(); 
 threadWithMsg.start(); 
 Looper looper = threadWithMsg.myLooper;//  
//这里有个问题.threadWithMgs中的myLooper可能此时为空  
//需要同步处理一下  
//或者像API文档中的那样,把handler定义到ThreadWithMessageHandle到去。  
//外线程获得这个handler的时候仍然要注意同步的问题,因为handler的创建是在run中的  
 Handler threadHandler = new Handler(looper); 
 threadHandler.sendMessage(...) 

 
 

 
 
 
... 
Cpp代码
//假设在onCreate中创建一个线程 
//不花时间考虑代码的完整和严谨性了,以讲述原理为主。 
.... 
 
... onCreate(...){ 
 
//难点是如何把android中的looper和java的thread弄到一起去。 
//而且还要把随时取得这个looper用来创建handler 
//最简单的办法就是从Thread派生一个 
class ThreadWithMessageHandle extends Thread{ 
  //重载run函数 
  Looper myLooper = null; 
  run(){ 
  Looper.prepare();//将Looper设置到这个线程中 
  myLooper = Looper.myLooper(); 
  Looper.loop();开启消息循环 

 
 ThreadWithMessageHandle  threadWithMgs = new ThreadWithMessageHandle(); 
 threadWithMsg.start(); 
 Looper looper = threadWithMsg.myLooper;// 
//这里有个问题.threadWithMgs中的myLooper可能此时为空 
//需要同步处理一下 
//或者像API文档中的那样,把handler定义到ThreadWithMessageHandle到去。 
//外线程获得这个handler的时候仍然要注意同步的问题,因为handler的创建是在run中的 
 Handler threadHandler = new Handler(looper); 
 threadHandler.sendMessage(...) 

 
 

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

作者“子弹头”
 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Android 完全退出程序
  • 原创:Android应用开发-Andorid歌词秀,含源码
  • android 屏幕保护
  • Android手机软件汉化教程---第四课 dex文件汉化
  • 众多Android 开源项目推荐,给力工作给力学习
  • Android Audio代码分析4
  • Android得到已安装的应用程序信息!
  • Android开发者指南(29) —— USB Host and Accessory
  • Android成长的幕后推手:工程师鲁宾
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1