现在的位置: 首页Android开发 > 正文
Android中的Handler和Callback机制
关键词:Android Handler Callback ┊ 来源: 原创收藏

Handler主要用来在线程中和ActivityService通信的机制。在需要接收消息的ActivityService中需要实现Handler.Callback接口,实现这个接口的:

Java代码

  1. public boolean handleMessage( Message inMessage )   

public boolean handleMessage( Message inMessage )

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

Java代码

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

Looper  looper = inContext.getMainLooper();

mThread = looper.getThread();

mHandler = new Handler( looper , mCallback );

或者:

Java代码

  1. mHandler = new Handler( mCallback )  

mHandler = new Handler( mCallback )

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

Java代码

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

//inToken 是一个Object对象,可以传入其他的参数

mHandler.obtainMessage( inWhat , inA , inB , inToken )

mHandler.sendMessage( inMessage )

 

Java代码

  1. mHandler.sendEmptyMessage( inWhat )  

mHandler.sendEmptyMessage( inWhat )

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

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

Java代码

  1. mHandler.post( inRunnable );   

mHandler.post( inRunnable );

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

Java代码

  1.  mHandler.removeCallbacks( inRunnable );   

 mHandler.removeCallbacks( inRunnable );

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

本文由 jack 发布于 2523天 9小时 2分钟前,目前已有 6851 人浏览
欢迎大家转载分享,请注明来源及链接;商业媒体转载请获得授权,谢谢合作!
 

添加评论