大部分情况下,我们需要实现的消息机制无非是某个类得到了数据,需要传递到某个主界面上去显示,可以把这个消息在类中做成全局变量,主界面的类用一个线程定时扫描,如果这个数据不是空,则说明被类刷新了,那么更新主界面的数据,更新完成就把这个数据清空,这样下次判断如果为空,则不更新,直到被某个子类刷新位置再更新。

但是即便如此,还是没那么简单,比如我在主程序中,死循环不断输出一个int类型变量的值,使用了两个try catch语句,第一个不会死,在日志窗口中可以看到数据的增加,而第二个却不会执行,文本框不会定期的增加数据

 

我们需要用到JAVA的handler来做这个事情,首先是在主程序中,声明Handler类型变量,然后再Oncreate的时候做好这个函数要做的事情(可以指向一个新的函数,或者直接写,注意函数格式是死的,要求Message类型变量进来,但是实际上内部执行什么函数都是任意的,比如我要执行UpdataTalk,就是把一个string更新主界面)

 

到了实现消息机制的问题了,我们主程序一旦OnCreate就启动了一个线程 ,在线程中不断用本文最前面说的,判断一个全局的字符串是否是空或者null,如果不是就说明有了新的数据,执行更新。注意Thread t1的start其实就是执行了run方法,每隔100ms判断并刷新一次数据。可以尝试一下直接更新时不行的,必须交给handler来处理。

 

当然,更新完了要自己把数据清空,否则会不断提示同样的话

 

 

最新文章

  1. 张小龙宣布微信小程序1月9日发布,并回答了大家最关心的8个问题
  2. SQL Server 求结果
  3. Yii2初谈
  4. indeterminateDrawable
  5. VMware技巧01
  6. 【GOF23设计模式】代理模式
  7. 【转】Windows的多线程编程,C/C++
  8. Effective Java 43 Return empty arrays or collections, not nulls
  9. CodeForces 42A Guilty — to the kitchen!
  10. 了解python
  11. POJ 3259 Wormholes(SPFA)
  12. ExecutorService(转)
  13. Akka.net开发第一个分布式应用
  14. openstack pike 使用 openvswitch + vxlan
  15. JSPatch 热更新
  16. 前端神器之jquery
  17. 在OAF页面中集成ECharts以及highcharts用于显示图表
  18. 制作DNS字典
  19. 2.静态AOP实现-装饰器模式
  20. android 自定义命名空间 http://schemas.android.com/apk/res-auto

热门文章

  1. js中字符串常规操作
  2. 日志组件Log4Net
  3. 总结DSP28335的程序设计的方法
  4. 一个C优先级队列实现
  5. Android屏幕元素层次结构
  6. http请求分析
  7. Segment Tree
  8. 获取父窗口iframe方法
  9. UVA 1151 Buy or Build MST(最小生成树)
  10. Ngnix 安装与使用