Android sendToTarget

在使用message进行handler的数据交互的时候不可避免的会使用到message作为数据的载体,但是在使用message的时候有人会直接new一个message,有人会使用handler.obtainMessage(),那么这两种方式那种更好一些呢,或者说应用场景分别是什么呢。下面是我的拙见:

/**

* Returns a new {@link android.os.Message
Message} from the global message pool. More efficient than

* creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this).

*  If you don‘t want that facility, just call Message.obtain() instead.

*/

public final Message obtainMessage()

{

return Message.obtain(this);

}

这是android的源码从注释上咱们可以看出这种形式得到的message是先从 global message
pool中获取的,大致可类比成1.6之后的String的变量的String pool,而new Message是直接new的,也就是说这两种方式只是在生成对象的形式上不同。

在分享个imageView在设置图片的时候通常会有两种形式一种是设置src,另一种是设置background,那么这两种形式有什么不一样的呢:前者是不能拉伸的,而后者是可以任意拉伸的,并且两者可同时存在的。

时间: 2024-11-03 22:31:41

Android sendToTarget的相关文章

Android sendMessage 与 obtainMessage (sendToTarget)比较

话说在工作中第一次接触android 的Handler 的时候,不知道怎么去关注性能. 记得当时这么写的: Message msg = new Message() msg.what = xxx; msg.arg1 = xxx; msg.arg2 = xxx; handler.sendMessage(msg); 这样写也没有绝得不好,反正当时项目的功能实现了.(性能上还可以) 后来没事的时候看了看handler 的其他的方法,就看到了obtainMessage()这个方法.很奇怪,不知道为何还要出

android 主线程和子线程之间的消息传递

从主线程发送消息到子线程(准确地说应该是非UI线程) package com.zhuozhuo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.util.Log;import android.view.View;import android.view.Vie

一起学android之利用回调函数onCreateDialog实现加载对话框(23)

效果图: 有时候我们需要去做一个Activity启动时的数据加载对话框,关于对话框的各种实现可以通过一起学android之对话框 Dialog的创建(7)来完成,在这里另外介绍一个,利用onCreateDialog回调方法来实现,当然这个方法标记已经过 时了,但我们还是可以使用这个方法来实现我们想要的功能.具体请参看代码: public class MainActivity extends Activity { @SuppressWarnings("deprecation") @Ove

Android中的Handler, Looper, MessageQueue和Thread

Android中的Handler, Looper, MessageQueue和Thread 前几天,和同事探讨了一下Android中的消息机制,探究了消息的发送和接收过程以及与线程之间的关系.虽然我们经常使用这些基础的东西,但对于其内部原理的了解,能使我们更加容易.合理地架构系统,并避免一些低级错误. 对于这部分的内容,将分成4小节来描述: 1.职责与关系 2.消息循环 3.线程与更新 4.几点小结 ------------------------------------------------

Android Bluetooth 4.0深入学习

Android平台包含了对蓝牙网络协议栈的支持,它允许一个蓝牙设备跟其他的蓝牙设备进行无线的数据交换.应用程序可以通过Android蓝牙的API所提供访问蓝牙的功能.这些API会把应用程序无线连接到其他的蓝牙设备上,接下来让我们慢慢来走进 Android Bluetooth 4.0 , 希望对大家有一定 的帮助. 蓝牙API,Android应用程序能够执行以下功能: 1. 扫描其他蓝牙设备 2. 查询本地已经配对的蓝牙适配器 3. 建立RFCOMM通道 4. 通过服务发现来连接其他设备 5. 在

仿优酷Android客户端图片左右滑动(自动滑动)

最终效果: 页面布局main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent

Android SocketService

package com.freer.infusion.module.service; import android.app.ActivityManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.graphics.BitmapFactory; import android.os.Binder; import androi

Android调用微信登陆、分享、支付

前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也有个找资料的地方. 一.微信登陆分三个步骤: 1).微信授权登陆  2).根据授权登陆code 获取该用户token  3).根据token获取用户资料  4).接收微信的请求及返回值 如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作: a. 在你的包名相应目录

Android开发实战之ViewPager的轮播

在安卓开发的许多控件中,如果你没有使用过ViewPager,就不能算是一个安卓开发工程师,在本篇博文中,我会总结ViewPager的使用方法, 以及一些开发中的拓展.希望本篇博文对你的学习和工作有所帮助. **ViewPager的基本使用** ViewPager的使用遵循MVC模式,M(模型),V(视图),C(控制器).模型就是viewpager对象,视图就是xml视图,控制器就是适配器adapter.所以, 要实现一个完整的ViewPager这三个东西一个都不能少. xml: <?xml ve