Android Message和obtainMessage的区别
Android Message和obtainMessage的区别
类概述
定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作。
尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。
1、首先创建Handler对象:
- private Handler mHandler = new Handler() {
- public void handleMessage(android.os.Message msg) {
- switch (msg.what) {
- case 1:
- textShowTV.setText("展示中...");
- break;
- }
- };
- };
2、然后是消息处理:
- //①,使用new Message()
- // Message mess = new Message();
- //②,使用Message.obtain()
- Message mess = Message.obtain();
- mess.what =1;
- //mHandler.obtainMessage(1)与上两行的代码一样,可以参考源码查看
- // Message mess = mHandler.obtainMessage(1);
- mHandler.sendMessage(mess);
进入obtain方法:
进入Message方法:
查看obtainMessage()源码:
查看Message.obtain(this, what) 源码:
然后,再次点击obtain() 方法,代码又回归到了图1
总结:
Android Message和obtainMessage的区别相关推荐
- Message创建方式:new Message和obtainMessage的区别
前言 创建Message对象的时候,有三种方式,分别为: 1.Message msg = new Message(); 2.Message msg2 = Message.obtain(); 3.Mes ...
- Android Handler Message 里面的message.what, message.arg1,message.obj,obtainMessage, message.setData的使用
Android Handler Message 里面的message.what, message.arg1,message.arg2,message.obj,obtainMessage, messag ...
- android @id和@+id的区别
今天,简单讲讲android里关于@id和@+id的区别. 之前,自己在布局里无论什么情况都使用@+id,可是后来发现有些代码用的是@id,自己不知道这两者之间有什么区别.于是就在网上查找资料,最终是 ...
- Android版本dp,Android中sp和dp区别
--- title: Android中sp和dp区别 date: 2016-09-08 17:04:15 tags: Android categories: Android开发 --- ## 理解an ...
- android中src和background区别
android中src和background区别 ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而src就存放 ...
- Android各个版本API的区别
Android各个版本API的区别 Android 1.5 API变更概要: 1.UI framework · Framework for easier background/UI thread in ...
- 浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解
浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解 本篇文章小编为大家介绍,Android onTouchEvent 与 onInterceptTo ...
- android 组件的id,Android@id和@+id的区别 - 泡在网上的日子
Android中的组件需要用一个int类型的值来表示,这个值就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例�[email protected]/abc.@+id ...
- Android之startService()和bindService()区别
Android之startService()和bindService()区别 1. 生命周期: 执行startService时,Service会经历onCreate->onStartComman ...
最新文章
- LeetCode刷题记录4——67. Add Binary(easy)
- 网站服务器停止响应,如何解决apache停止响应的问题
- 我在实际工作中用的最多的 git 命令,全在这里了,使用简单!
- 安卓进阶系列-02搜索框(PersistentSearch)的使用
- 数据结构与算法 | 循环队列
- C#操作Cookie
- matlab表示DFT和DTFT,【 MATLAB 】离散傅里叶级数(DFS)与DFT、DTFT及 z变换之间的关系...
- (16)Zynq FPGA SD控制器介绍
- python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?
- 845. 数组中的最长山脉
- 【大数据】0001---使用SparkSQL关联两个表求和取前几行
- 怎么修改图片大小尺寸?
- LINUX内核编译选项-4
- Android支付宝刷步数,蚂蚁森林刷步数小技巧(一键修改支付宝步数)
- AOP底层实现原理、基于注解的AOP编程、AOP开发中的一个坑 打卡第八天
- mysql raw_rails - 直接执行raw sql. 查询mysql的基本数据
- 原生Js弹窗插件|web弹出层组件|对话框
- 去哪儿12306候补购票怎么用?
- Webpack 使用
- Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)