消息handler message 线程通信 空消息
2024-08-30 08:16:06
空消息的使用
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); } }
最新文章
- JavaScript 对象属性介绍
- [Android 开源项目学习]Android的UITableView(1)
- mssql触发器demo
- C#正则表达式之字符替换
- TimeSpan XML序列化
- 居然还有WM_TIMECHANGE(只在用户手动改变系统时间时才会产生作用)
- STM32W芯片的JTAG口用于GPIO
- 开涛spring3(2.2) - IoC 容器基本原理及其helloword
- 大前端的自动化工厂(2)—— SB Family
- 关于memset的错误使用
- react项目和next项目修改默认端口号
- python函数作用域,嵌套函数,闭包
- Shell中的case命令
- BAT及各大互联网公司2014前端笔试面试题--JavaScript篇(昨天某个群友表示写的简单了点,然后我无情的把他的抄了一遍)
- Linux学习笔记04—IP配置
- 树莓派通过GPIO控制步进电机
- hive一行变多行及多行变一行
- IntelliJ IDEA导出Java 可执行Jar包
- webpack打包多html开发案例新
- Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)