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

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

 

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

 

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

 

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

 

 

JAVA Eclipse中如何简易的实现消息机制的更多相关文章

  1. java eclipse中的代码联动提示功能

    eclipse中的代码联动提示设置:window--->preferences--->java--->editor----> content assist的auto activ ...

  2. [Java] Eclipse中复制全限定名(Copy Qualified Name)的效果

    在Eclipse中,使用“ Copy Qualified Name”复制类的全限定名有两种效果: (1)选中工程上的java文件,右键 - Copy Qualified Name 复制的效果是带斜杠的 ...

  3. Android(java)学习笔记202:Handler消息机制的原理和实现

     联合学习 Android 异步消息处理机制 让你深入理解 Looper.Handler.Message三者关系   1. 首先我们通过一个实例案例来引出一个异常: (1)布局文件activity_m ...

  4. Android(java)学习笔记145:Handler消息机制的原理和实现

     联合学习 Android 异步消息处理机制 让你深入理解 Looper.Handler.Message三者关系   1. 首先我们通过一个实例案例来引出一个异常: (1)布局文件activity_m ...

  5. JAVA Eclipse中的Android程序如何使用线程

    我们先单独定义一个java类,名字可以任意取(比如叫做ClientHeartBeat类,我当前在做一个socket通信的客户端,我们假定需要一个可以测试心跳的程序),注意他要继承Thread,然后重载 ...

  6. java,eclipse中如何添加httpclient.jar

    1.Download 'Binary' package of the latest official release from the project download page. There sho ...

  7. Eclipse中servlet简易模版

    package ${enclosing_package}; import java.io.IOException; import javax.servlet.ServletException; imp ...

  8. java eclipse中使用wsdl生成soap 的客户端代码

    项目右键--> new --> other finish完成

  9. [学习笔记]Java代码中各种类型变量的内存分配机制

    程序运行时,我们最好对数据保存到什么地方做到心中有数.特别要注意的是内存的分配.有六个地方都可以保存数据: (1) 寄存器 这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而 ...

随机推荐

  1. windows 系统下TortoiseGit 的安装

    git 常用的使用工具: Windows 支持下载安装TortoiseGit Mac 下 推荐使用 sourcetree Windows下的 TortoiseGit 安装 1. 进入 小乌龟官网 To ...

  2. WCF信道绑定代码

    监听端创建信道Listener,代码 using System; using System.Collections.Generic; using System.Linq; using System.T ...

  3. struct timeval和gettimeofday()

    http://www.cppblog.com/lynch/archive/2011/08/05/152520.html struct timeval结构体在time.h中的定义为: struct ti ...

  4. 为何url地址不是直接发送到服务器,而是被编码后再发送

    首先,先说一下,关于为何必须将url地址,去编码后,再发送,是因为相关的协议规范:RFC 1738,定义了url地址中不能包含除了0-9的数字,大小写字母(a-zA-Z),短横线’-‘ 之外的字母.换 ...

  5. Scala学习随笔——Scala起步

    实验楼学习Scala语言的笔记,课程网址为https://www.shiyanlou.com/courses/490 一.Scala简介 Scala 是一门多范式的编程语言,类似于 Java .设计初 ...

  6. log4j2 扩展日志级别,支持将系统日志与业务处理日志拆分

    项目中,有时候需要对系统中已处理的一些业务数据日志进行提取分析,通常log4j默认提供的日志级别可能不够用,这时候我们就需要对日志级别进行扩展,以满足我们的需求. 本文就简单介绍一下log4j2的日志 ...

  7. 【原创】Win7 IE故障:APPCRASH,d3d9.dll,c0000005

    问题 今天使用使用IE登录某网址,发现总是报错,如下图,无法浏览. 解决方案 主要讲IE的呈现方案修改即可,如下步骤: 在IE的[Internet选项]选择[高级]选项卡,在[加速的图形]中勾选[使用 ...

  8. [BZOJ1018][SHOI2008]堵塞的交通traffic 线段树维护连通性

    1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 3795  Solved: 1253 [Sub ...

  9. NYOJ16 矩形嵌套 【DAG上的DP/LIS】

    矩形嵌套 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c ...

  10. 手机APP测试技术-整体测试流程框架

    一  手机APP测试基本思路: 测试计划--测试方案--测试用例--执行: 很多小公司都没有具体的需求,项目时间也比较紧,而且流程也不是很严谨,在这样的情况之下,作为测试的我们,该怎样去对项目进行用例 ...