使用 HandlerThread

使用 HandlerThread

Android 提供了一个便捷的线程类 HandlerThread ,此类自带了一个Looper ,可以实现跨线程通信的功能(至少我是这么使用的 :)23333 )

使用方法

Step 1 :

当然是先创建一个此类对象了

HandlerThread mHandlerThread  =  new HandlerThread();
Step 2 :

在创建Handler前一定要先将 mHandlerThread.start()开启一个线程

mHandlerThread.start()
Step 3 :

创建一个Handler 给 mHandlerThread ,我们知道handler 最终处理Message时是在他构造方法中传入的Looper的所有者所在的线程,有点绕哈
简单的说, handler 关联的 Looper 是哪个线程的,handler就在哪个线程处理 Message

 mHandlerThread.start();
 Handler mHandler = new Handler (mHandlerThread.getLooper());
Step 4 :

就是Handler那一套,重写 handlerMessage ,发任务的线程 sendMessage

@override
  public void handleMessage(Message msg) {
		switch(msg.what){
		case:
		xxx
		break;
	}
}
//发任务的线程
mHandler.sendEmptyMessage(xxx);
注意使用后为了避免内存泄漏

手动清空一次message

     retryLocationHandler.removeCallbacksAndMessages(null);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值