Android Handler sendMessage和 sendMessageDelayed的使用
sendMessage :立即发送消息
sendMessageDelayed:指定多少毫秒后发送消息。
其实常用的还有2个
sendEmptyMessage 发送空消息, 一般自己想把某种操作放到子线程里面
sendEmptyMessageDelayed 指定多少毫秒后发送空消息, 一般我们做延时操作的时候使用到
如果对sendEmptyMessage 和 sendEmptyMessageDelayed 的使用也是模糊可以点击查看我的这边文章
下面同一个demo 来学习sendMessage和 sendMessageDelayed的使用
public class MainActivity extends AppCompatActivity implements Handler.Callback {private Handler handler;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);handler = new Handler(this);// 这里消息表示666 和999 是自己随便取的runOnUiThread(new Runnable() {@Overridepublic void run() {Message msg = Message.obtain();msg.what = 666; // 消息标识handler.sendMessage(msg);}});runOnUiThread(new Runnable() {@Overridepublic void run() {Message msg = Message.obtain();msg.what = 999;handler.sendMessageDelayed(msg,5000);}});// new Thread() {
// @Override
// public void run() {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// Message msg = Message.obtain();
// msg.what = 999; // 消息标识
// msg.obj = "A"; // 消息内存存放
// handler.sendMessageDelayed(msg,5000);
// }
// }.start();}@Overridepublic boolean handleMessage(@NonNull Message msg) {switch (msg.what) {case 666:Toast.makeText(this, "使用了sendMessage", Toast.LENGTH_SHORT).show();break;case 999:Toast.makeText(this, "sendMessageDelayed", Toast.LENGTH_SHORT).show();break;}return false;}@Overrideprotected void onDestroy() {super.onDestroy();if (handler != null) {handler.removeCallbacksAndMessages(null);handler = null;}}}
Android Handler sendMessage和 sendMessageDelayed的使用相关推荐
- android sendmessage传递对象,android handler sendMessage
我们先从最熟悉也是最基本的方法sendMessage(Message msg)来查看,为什么说它是最基本的方法,因为其他发送方法无论是post开头的各种方法还是sendEmptyMessage()本质 ...
- android handler的机制和原理_一文搞懂handler:彻底明白Android消息机制的原理及源码
提起Android消息机制,想必都不陌生.其中包含三个部分:Handler,MessageQueue以及Looper,三者共同协作,完成消息机制的运行.本篇文章将由浅入深解析Android消息机制的运 ...
- Android Handler的原理
简介 在 Android 中,只有主线程才能操作 UI,但是主线程不能进行耗时操作,否则会阻塞线程,产生 ANR 异常,所以常常把耗时操作放到其它子线程进行.如果在子线程中需要更新 UI,一般是通过 ...
- 详解Android Handler的使用
我们进行Android开发时,Handler可以说是使用非常频繁的一个概念,它的用处不言而喻.本文就详细介绍Handler的基本概念和用法. Handler的基本概念 Handle ...
- 源码分析Android Handler是如何实现线程间通信的
源码分析Android Handler是如何实现线程间通信的 Handler作为Android消息通信的基础,它的使用是每一个开发者都必须掌握的.开发者从一开始就被告知必须在主线程中进行UI操作.但H ...
- Android Handler消息机制源码分析
一,前言 众多周知, Android 只允许在主线程中更新UI,因此主线程也称为UI线程(ActivityThread). 如此设计原因有二: (1) 由于UI操作的方法都不是线程安全的,如果多个线程 ...
- Android Handler讲述很详细的一篇文章
Android中的Handler <一> Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 ...
- android handler的理解
android handler的理解 在看handler源码前,我一直以为google构造handler的目的是方便开发者在其他线程中 调用执行主线程的方法或者在主线程中调用执行其他线程的方法.看完源 ...
- Android Handler机制简单分析
丨版权说明 : <Android Handler机制简单分析>于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢. 本文一切从简,将围绕以下流程展开叙述: what why how ...
最新文章
- 选择Scrum看板工具的七点特征
- Eclipse删除文件的恢复(转)
- 就是好骑!骑ofo小黄蜂和舒畅早晨say hi,跟闹心堵车say bye
- spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现
- IE-OLD IE 提示
- java display属性_JavaScript中的style.display属性操作
- HBase-site.xml 常见重要配置参数(转载)
- 2 Hadoop的安装与配置
- 大型网站系统的特点和架构设计
- 奥拉星插件flash下载手机版下载安装_奥拉星游戏插件
- 读读objc源码(二):weak类型指针的实现
- python 安装 Pyside 出现 “Failed to find the MSVC compiler version 10.0 on your system”
- 哇撒!这几个SpringBoot前后端分离项目(附源码),star过千,快去收藏夹吃灰吧。。。
- python大牛是什么水平_yield--Python大牛必须掌握的高端语法
- 用EXCEL分析房价
- linux终端打开excel,linux 打开excel命令 java
- 公司发展历程企业项目进度大事记时间轴PPT模板
- Radiology:磁共振血管造影(MRA)在脑转移瘤治疗中对血管形态改变的测量
- uniapp移除原生导航栏后页面与手机状态栏重叠问题
- windows win7电脑搜索功能失效怎么修复