sendToTarget与sendMessage

1、第一种:

        Message message = Message.obtain(handler, R.id.decode_succeeded, rawResult);
        // Message message = Message.obtain(handler, R.id.decode_failed);
        Bundle bundle = new Bundle();
        //set bundle data
        message.setData(bundle);
        message.sendToTarget();

Message msg = handler.obtainMessage();
                        msg.arg1 = i;
                        msg.sendToTarget();

2、第二种

Message msg=new Message();
    msg.arg1=i;
    handler.sendMessage(msg);

第一种写法是message 从handler 类获取,从而可以直接向该handler 对象发送消息,第二种写法是直接调用 handler 的发送消息方法发送消息。

时间: 2024-08-27 07:09:11

sendToTarget与sendMessage的相关文章

91、sendToTarget与sendMessage

Message msg = handler.obtainMessage();               msg.arg1 = i;               msg.sendToTarget(); Message msg=new Message();    msg.arg1=i;    handler.sendMessage(msg); 第一种写法是message 从handler 类获取,从而可以直接向该handler 对象发送消息, 第二种写法是直接调用 handler 的发送消息方法发

Handler系列之使用

作为一个Android开发者,我们肯定熟悉并使用过Handler机制.最常用的使用场景是"在子线程更新ui",实际上我们知道上面的说话是错误的.因为Android中只有主线程才能更新ui,那么当我们在子线程得到更新ui通知的时候怎么办?此刻Handler存在的意义就体现出来了.我们在子线程用handler发送一个消息通知给主线程,然后让主线程更新ui,这样问题就解决了.下面让我们看看handler怎么使用的吧!!! <一>Handler的基本使用 public class

【转】Android 消息机制

Android 消息机制 本文首先从整体架构分析了Android整个线程间消息传递机制,然后从源码角度介绍了各个组件的作用和完成的任务.文中并未对基础概念进行介绍,关于threadLacal和垃圾回收等等机制请自行研究. 基础架构 首先,我们需要从整体架构上了解一下Android线程通信都做了哪些工作.我们都知道,进程是操作系统分配资源的最小单位,一个进程中可以启动多个线程来执行任务,这些线程可以共享进程的资源但不分配资源,这里讲的资源主要是只内存资源.Android的线程间消息传递机制其实和我

浅谈android中的异步加载一

1.为什么需要异步加载. 因为我们都知道在Android中的是单线程模型,不允许其他的子线程来更新UI,只允许UI线程(主线程更新UI),否则会多个线程都去更新UI会造成UI的一个混乱有些耗时的操纵(例如网络请求等),如果直接放到主线程中去请求的话则会造成主线程阻塞,而我们系统有规定的响应时间,当响应的时间超过了了阻塞的时间就会造成"Application No Response",也就是我们熟知的ANR错误解决上述问题的时候:我们一般使用的是线程或者线程池+Handler机制如果线程

彻底理解handler的实现原理

说到handler大家都很熟悉,自己也用了很久,再此总结一下 从handler的源码角度看看handler是如何执行的. 涉及到的内容: Loop Message MessageQueue ThreadLocal Hadnler 这些东西还是挺多的.那么我们先看一个栗子吧 public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override pro

android 的消息处理

算是工作记录吧... 首先,android中界面的更新都必须放到主线程中间去做,当我们在子线程中想要更新界面的时候,可以通过Handler和Message这两个类来进行处理.比如新开了一个线程,用来进行下载任务,通过Handler显示进度条等.大概的过程是这样的,首先获得一个message ,然后调用sendMessage发送出去,然后就可以在重写的handler类的函数里面进行处理了. new Thread() { public void run() { ... Message msg = M

Android的消息机制以及Message/MessageQueue/Handler/Looper

概览 * Message:消息.消息里面可包含简单数据.Object和Bundle,还可以包含一个Runnable(实际上可看做回调). * MessageQueue:消息队列,供Looper线程消费消息. * Looper:用于循环处理Message,一个Thread结合一个Looper来实现消息循环处理.Android App的主线程包含了Looper. * Handler:负责向当前Looper线程发送Message,并实现如何处理消息的回调,回调可放到Callback接口的实现中,也可以

消息处理Handler

关于Message-----------------------------------Message是“消息机制”中“消息”的载体.Message的常用属性有:int what:表示消息的类型标识,可以由开发者随意指定,通常应该使用静态常量,而且,各消息的int值应该不相同int arg1:表示在消息中需要封装的int类型数据,该属性的值应该是有数值含义的int arg2:参考arg1Object obj:作用参考arg1创建Message对象:尽管Message类提供了无参数的公有的构造方法

Android消息机制:Looper,MessageQueue,Message与handler

Android消息机制好多人都讲过,但是自己去翻源码的时候才能明白. 今天试着讲一下,因为目标是讲清楚整体逻辑,所以不追究细节. Message是消息机制的核心,所以从Message讲起. 1.Message是什么? 看一个从消息池中取出一个msg的方法: public static Message obtain(Handler h, int what, int arg1, int arg2, Object obj) { Message m = obtain(); m.target = h; m