消息handler message 线程通信 空消息
空消息的使用
private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { //得到当前显示的数值 int number = Integer.parseInt(tv_demo_number.getText().toString()); switch (msg.what) { case WHAT_INCREASE: //限制number<=20 if(number==20) { //设置暂停不能操作 btn_demo_pause.setEnabled(false); Toast.makeText(HandlerDemoActivity.this, "已经达到最大值", 0).show(); return; } number++; tv_demo_number.setText(number+""); //发送增加的延迟消息 handler.sendEmptyMessageDelayed(WHAT_INCREASE, 1000); break; case WHAT_DECREASE: //限制number>=1 if(number==1) { //设置暂停不能操作 btn_demo_pause.setEnabled(false); Toast.makeText(HandlerDemoActivity.this, "已经达到最小值", 0).show(); return; } number--; tv_demo_number.setText(number+""); //发送减少的延迟消息 handler.sendEmptyMessageDelayed(WHAT_DECREASE, 1000); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_handler_demo); init(); } private void init() { tv_demo_number = (TextView) findViewById(R.id.tv_demo_number); btn_demo_increase = (Button) findViewById(R.id.btn_demo_increase); btn_demo_decrease = (Button) findViewById(R.id.btn_demo_decrease); btn_demo_pause = (Button) findViewById(R.id.btn_demo_pause); btn_demo_increase.setOnClickListener(this); btn_demo_decrease.setOnClickListener(this); btn_demo_pause.setOnClickListener(this); } @Override public void onClick(View v) { if(v==btn_demo_increase) {//自动增加 what =1 //限制Button可操作性 btn_demo_increase.setEnabled(false); btn_demo_decrease.setEnabled(true); btn_demo_pause.setEnabled(true); //停止减少(移除未处理的减少的消息) handler.removeMessages(WHAT_DECREASE); //发消息(增加) handler.sendEmptyMessage(WHAT_INCREASE); } else if(v==btn_demo_decrease) {//自动减少 what=2 //限制Button可操作性 btn_demo_increase.setEnabled(true); btn_demo_decrease.setEnabled(false); btn_demo_pause.setEnabled(true); //停止增加(移除未处理的增加的消息) handler.removeMessages(WHAT_INCREASE); //发消息(减少) handler.sendEmptyMessage(WHAT_DECREASE); } else if(v==btn_demo_pause) {//暂停 //限制Button可操作性 btn_demo_increase.setEnabled(true); btn_demo_decrease.setEnabled(true); btn_demo_pause.setEnabled(false); //停止增加/减少(移除未处理的减少/增加的消息) handler.removeMessages(WHAT_INCREASE); handler.removeMessages(WHAT_DECREASE); } }
消息handler message 线程通信 空消息的更多相关文章
- Android 使用handler实现线程间发送消息 (主线程 与 子线程之间)、(子线程 与 子线程之间)
keyword:Android 使用handler实现线程间发送消息 (主线程 与 子线程之间).(子线程 与 子线程之间) 相信大家平时都有使用到异步线程往主线程(UI线程)发送消息的情况. 本文主 ...
- Android - 消息机制与线程通信
以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删):http://blog.csdn.net/luosheng ...
- Handler实现线程间的通信1
通过Handler实现线程间的通信,在主线程当中实现Handler的handlerMessage()方法,在WorkerThread中通过Handler发送消息 Handler实现线程间的通信实例: ...
- android线程 Handler Message Queue AsyncTask线程模型 线程交互 + 修改Button样式 示例 最终easy整合版
首先原谅我把文章的标题写的这么长.其实我还嫌弃它短了因为 写不下去了所以我就不写了.因为我实在不知道该怎么定义这篇文章的标题或许应该叫 "乱谈"比较合适. 这样可能还体现了 ...
- WCF技术剖析之十七:消息(Message)详解(上篇)
原文:WCF技术剖析之十七:消息(Message)详解(上篇) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]消息交换 ...
- android 37 线程通信Looper
安卓程序的主线程也叫UI线程. 工作线程和主线程的差别:安卓主线程已经调用了Looper.prepare()方法了,已经有一个MessageQueue对象了,所以才可以在工作线程用Handler发消息 ...
- Android线程通信
摘要 andriod提供了 Handler 和 Looper 来满足线程间的通信.例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传 ...
- 从Handler+Message+Looper源代码带你分析Android系统的消息处理机制
PS一句:不得不说CSDN同步做的非常烂.还得我花了近1个小时恢复这篇博客. 引言 [转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 作为A ...
- Handler 、 Looper 、Message异步消息处理线程机制( hander消息机制原理)
Handler . Looper .Message 这三者都与Android异步消息处理线程相关的概念. 那么什么叫异步消息处理线程呢? 异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次, ...
随机推荐
- Visual Studio Code 使用教程
visual studio code以下简称vsc.vsc这个编辑器也火了一会了,最近在跟风学一波typescript,网络上很多人说vsc是最适合ts的编辑器,而且这个编辑器本身也很好用,所以学一下 ...
- AC日记——[CQOI2014]危桥 洛谷 P3163
题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次.A ...
- AC日记——旅行 洛谷 P3313
题目描述 S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教.绝地教都是常见的信仰. 为了方便,我 ...
- 牛客网 牛客小白月赛1 C.分元宵-快速幂
C.分元宵 链接:https://www.nowcoder.com/acm/contest/85/C来源:牛客网 这个题就是快速幂,注意特判,一开始忘了特判,wa了一发. 代码: 1 #inclu ...
- javascript --- 递归的简单理解
递归函数大家都应该比较熟吧?那么,如何在JavaScript中书写一个完美的递归函数呢?且听我娓娓道来. 递归函数 写的时候,查了一下维基百科对递归函数的定义,恕我愚钝,简直太深奥了!所以,我还是简单 ...
- 【windows】windows下的hosts文件位置
- lstm公式推导
http://blog.csdn.net/u010754290/article/details/47167979 导言 在Alex Graves的这篇论文<Supervised Sequence ...
- WPA2密钥重装攻击原理分析
这两天最火爆的莫过 “WPA2被破解” 这一条大新闻了.我对其原理非常感兴趣,苦于没有找到的文献,所以就整理这么一篇,方便自己和大家理解.主要是根据目前发布的文章以及一些相关资料. 壹.WPA2的机制 ...
- 【Hibernate步步为营】--核心对象+持久对象全析(三)
上篇文章讨论了Hibernate持久对象的生命周期,在整个生命周期中一个对象会经历三个状态,三种状态的转换过程在开发过程中是可控的.并且是通过用法来控制它们的转化过程.详细的转化过程今天就来着重讨论下 ...
- Flex4_Tree组件1(添加、删除、展开、关闭、右键菜单)
1.屏蔽系统菜单:工程目录“html-template”文件夹-->“index.template.html”文件中,在var params = {};语句下添加新语句: para ...