`
yangwei0915
  • 浏览: 459929 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android中的Handler和Callback机制

阅读更多

Handler主要用来在线程之间的通信的机制。如在Activity或Service中需要接受其他线程的消息,则在需要接收消息的Activity或Service中需要实现Handler.Callback接口,实现这个接口的:

public boolean handleMessage( Message inMessage ) ;

 

方法。然后在创建Handler的地方将实现了Callback的类的实例传入:

Looper	looper = inContext.getMainLooper();
mThread = looper.getThread();
mHandler = new Handler( looper , mCallback );

 

或者:

mHandler = new Handler( mCallback )

 

然后当在线程中可使用如下代码向Acitity或Service发送消息:

//inToken 是一个Object对象,可以传入其他的参数
mHandler.obtainMessage( inWhat , inA , inB , inToken )
mHandler.sendMessage( inMessage )

 

 或

mHandler.sendEmptyMessage( inWhat )

 

当执上面的代码之后,创建这个Handler时使用Callback实例的handleMessage将会被调用。

 

可以使用如下代码将一个线程实例放入到Handler中使其执行:

mHandler.post( inRunnable ); 

 

可使用如下代码删除这个线程:

 mHandler.removeCallbacks( inRunnable ); 

 Handler上还有许多类似的发送消息或添加线程的方法。增加了一些其他的特征

分享到:
评论

相关推荐

    android中的Handler和Callback机制.pdf

    android中的Handler和Callback机制.pdf

    android线程消息机制之Handler详解

    android线程消息机制主要由Handler,Looper,Message和MessageQuene四个部分组成。平常在开发中,我们常用来在子线程中通知主线程来更新,其实整个安卓生命周期的驱动都是通过Handler(ActivityThread.H)来实现的。 ...

    详解Android中Handler的内部实现原理

    本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文《详解Android中Handler的使用方法》,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解。 概括来说,Handler...

    android的消息处理机制(图文+源码分析)—Looper/Handler/Message

    android源码中包含了大量的设 计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机 制,我看了Looper...

    Android消息处理机制Looper和Handler详解

    Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。 Handler:处理者,负责Message的发送及处理。...Looper:消息泵,不断地从MessageQueue中抽取

    Android 消息机制以及handler的内存泄露

    每个初学Android开发的都绕不开Handler这个“坎”,为什么说是个坎呢,首先这是Android架构的精髓之一,其次大部分人都是知其然却不知其所以然。今天看到Handler.post这个方法之后决定再去翻翻源代码梳理一下Handler...

    android-async-http-1.4.6

    android-async-http是专门针对Android在Apache的HttpClient基础上构建的异步http连接。所有的请求全在UI(主)线程之外执行,而callback使用了Android的Handler发送消息机制在创建它的线程中执行。

    Android Handler消息派发机制源码分析

    注:这里只是说一下sendmessage的一个过程,post就类似的 如果我们需要发送消息,会调用sendMessage方法 public final boolean sendMessage(Message msg) { return sendMessageDelayed(msg, 0);...

    使用C++11实现Android系统的Handler机制

    封面出自:板栗懒得很背景 线程作为系统的基础资源,相信大多数读者都有使用到。一般情况下我们会直接开一个线程做一些耗时操作,处理完之后让线程自动结束,资源被系统回收。这种简单粗暴的方法不少读者、甚至一些...

    Android编程实现异步消息处理机制的几种方法总结

    Handler是Android提供用来异步更新UI的一套机制,也是一套消息处理机制,可以用它来发送消息,也可以用它来接收消息。 二、为什么使用Handler Android在设计之时,就封装了一套消息的创建、传递、处理机制,作为系统...

    Android中消息机制分析

    但是我们在一个页面(Activity 或者 Fragment)中可以直接使用Handler进行消息的分发和处理。实例如下: private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean ...

    Android 消息机制详解及实例代码

    Android 消息机制 1.概述 Android应用启动时,会默认有一个主线程(UI线程),在这个线程中会关联一个消息队列(MessageQueue),所有的操作都会被封装成消息队列然后交给主线程处理。为了保证主线程不会退出,会将...

Global site tag (gtag.js) - Google Analytics