JAVA Eclipse中如何简易的实现消息机制
2024-09-06 21:51:43
大部分情况下,我们需要实现的消息机制无非是某个类得到了数据,需要传递到某个主界面上去显示,可以把这个消息在类中做成全局变量,主界面的类用一个线程定时扫描,如果这个数据不是空,则说明被类刷新了,那么更新主界面的数据,更新完成就把这个数据清空,这样下次判断如果为空,则不更新,直到被某个子类刷新位置再更新。
但是即便如此,还是没那么简单,比如我在主程序中,死循环不断输出一个int类型变量的值,使用了两个try catch语句,第一个不会死,在日志窗口中可以看到数据的增加,而第二个却不会执行,文本框不会定期的增加数据
我们需要用到JAVA的handler来做这个事情,首先是在主程序中,声明Handler类型变量,然后再Oncreate的时候做好这个函数要做的事情(可以指向一个新的函数,或者直接写,注意函数格式是死的,要求Message类型变量进来,但是实际上内部执行什么函数都是任意的,比如我要执行UpdataTalk,就是把一个string更新主界面)
到了实现消息机制的问题了,我们主程序一旦OnCreate就启动了一个线程 ,在线程中不断用本文最前面说的,判断一个全局的字符串是否是空或者null,如果不是就说明有了新的数据,执行更新。注意Thread t1的start其实就是执行了run方法,每隔100ms判断并刷新一次数据。可以尝试一下直接更新时不行的,必须交给handler来处理。
当然,更新完了要自己把数据清空,否则会不断提示同样的话
最新文章
- 张小龙宣布微信小程序1月9日发布,并回答了大家最关心的8个问题
- SQL Server 求结果
- Yii2初谈
- indeterminateDrawable
- VMware技巧01
- 【GOF23设计模式】代理模式
- 【转】Windows的多线程编程,C/C++
- Effective Java 43 Return empty arrays or collections, not nulls
- CodeForces 42A Guilty — to the kitchen!
- 了解python
- POJ 3259 Wormholes(SPFA)
- ExecutorService(转)
- Akka.net开发第一个分布式应用
- openstack pike 使用 openvswitch + vxlan
- JSPatch 热更新
- 前端神器之jquery
- 在OAF页面中集成ECharts以及highcharts用于显示图表
- 制作DNS字典
- 2.静态AOP实现-装饰器模式
- android 自定义命名空间 http://schemas.android.com/apk/res-auto