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

public boolean handleMessage( Message inMessage ) ;

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

Looperlooper = 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上还有许多类似的发送消息或添加线程的方法。增加了一些其他的特征

更多相关文章

  1. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. android基础(1)
  3. android中开启子线程
  4. Android实现Service下载文件,Notification显示下载进度的示例
  5. android -------- GifView 显示gif图片
  6. Handler+Looper+MessageQueue深入详解案例
  7. Android(安卓)Handler消息机制中的ThreadLocal源码分析
  8. Android多线程机制和Handler的使用
  9. RXJava

随机推荐

  1. MySQL 8.0.20 安装教程图文详解(windows
  2. MySQL8.0.20安装教程及其安装问题详细教
  3. mysql闪回工具binlog2sql安装配置教程详
  4. Mongodb中关于GUID的显示问题详析
  5. MySQL必备的常见知识点汇总整理
  6. mysql查询每小时数据和上小时数据的差值
  7. MySQL使用mysqldump+binlog完整恢复被删
  8. mysql条件查询and or使用方法及优先级实
  9. MySQL 表数据的导入导出操作示例
  10. MySQL 8.0用户和角色管理原理与用法详解