目录(?)[+]

 

参考:http://www.2cto.com/kf/201311/255885.html

http://www.cnblogs.com/over140/archive/2011/06/24/2088637.html

 
 

类概述

定义一个包含任意类型的描述数据对象,此对象可以发送给Handler。对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作。

尽管Message的构造器是公开的,但是获取Message对象的最好方法是调用Message.obtain()或者Handler.obtainMessage(), 这样是从一个可回收对象池中获取Message对象。

 

1、首先创建Handler对象:

  1. private Handler mHandler = new Handler() {
  2. public void handleMessage(android.os.Message msg) {
  3. switch (msg.what) {
  4. case 1:
  5. textShowTV.setText("展示中...");
  6. break;
  7. }
  8. };
  9. };
 

2、然后是消息处理:

  1. //①,使用new Message()
  2. //          Message mess = new Message();
  3. //②,使用Message.obtain()
  4. Message mess = Message.obtain();
  5. mess.what =1;
  6. //mHandler.obtainMessage(1)与上两行的代码一样,可以参考源码查看
  7. //          Message mess = mHandler.obtainMessage(1);
  8. mHandler.sendMessage(mess);
 
通过比较我们会发现,这两种获取Message的实例的方法不一样,于是我看了源码,果然不一样:
 

进入obtain方法:

 
图1:
 

进入Message方法:

 
图2:
 

查看obtainMessage()源码:

 
图3:
   
 

查看Message.obtain(this, what) 源码:

图4:
 

然后,再次点击obtain() 方法,代码又回归到了图1

 

总结:

 
上面的图1中obtain方法的注释中说得很明白:从整个Messge池中返回一个新的Message实例,在许多情况下使用它,因为它能避免分配新的对象
 
如果是这样的话,那么通过调用obtainMessage方法获取Message对象就能避免创建对象,从而减少内存的开销了。

最新文章

  1. [excel玩转表格教程][1G][AVI]
  2. 如何解决Visual Studio调试Debug很卡很慢
  3. Linux Shell多命令执行
  4. Storm(1) - Setting Up Development Environment
  5. UDPsocket编程
  6. spark新能优化之序列化
  7. appserv在哪修改服务器名
  8. codeforces #305 B Mike and Feet
  9. C#使用oledb方式将excel数据导入到datagridview后数据被截断为 255 个字符
  10. Zend Studio 10正式版破解(2013-02-26更新)
  11. Mono For Android中AlarmManager的使用
  12. SVG image xlink:href 设置失败
  13. [bug] Cannot proceed because system tables used by Event Scheduler were found damaged at server start
  14. 解决IOS iframe不滚动问题
  15. 利用Skywalking-netcore监控你的应用性能
  16. RabbitMQRPC 官方demo
  17. 基于SpringBoot搭建应用开发框架(二) —— 登录认证
  18. 2.Servlet 请求、响应及重定向
  19. org.jsoup.Jsoup找不到jar包问题解决思路
  20. js之全选即点击全选标签可选择全部复选框

热门文章

  1. SQLServer数据操作(建库、建表以及数据的增删查改)[转]
  2. 最短路径—Floyd算法
  3. 从bind函数看js中的柯里化
  4. day08作业
  5. 网络协议之UDP
  6. 10月15日 | 云栖大会“淘宝移动技术实践&开放论坛”来了!
  7. Pyhton核心编程-Chap2习题-DIY
  8. element-ui 2.7.2版本使用 表格展开行 功能遇到的奇葩问题?
  9. Asp.net mvc 实时生成缩率图到硬盘
  10. 【LOJ】 #2033. 「SDOI2016」生成魔咒