Handler和HandlerThread

Handler会关联一个单独的线程和消息队列。Handler默认关联主线程,虽然要提供Runnable参数,但默认是直接调用Runnable中的run()方法。也就是默认下会在主线程执行,如果在这里面的操作会有阻塞,界面也会卡住。如果要在其他线程执行,可以使用HandlerThread

HandlerThread继承于Thread,所以它本质就是个Thread。与普通Thread的差别就在于,主要的作用是建立了一个线程,并且创立了消息队列,有来自己的looper,可以让我们在自己的线程中分发和处理消息。



private void test(){
    HandlerThread handlerThread=new HandlerThread("test");
    handlerThread.start();
     handler=new Handler(handlerThread.getLooper()){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            try{
                Thread.sleep(5000);
                ToastUtil.showLongToast(AddCarActivity.this,"启了个线程休眠,不影响主线程");
            }catch (Exception ex){

            }
        }
    };

}
 

private void test(){

HandlerThread handlerThread=newHandlerThread("test");

handlerThread.start();

handler=newHandler(){

@Override

public voidhandleMessage(Message msg) {

super.handleMessage(msg);

try{

Thread.sleep(5000);

ToastUtil.showLongToast(AddCarActivity.this,"界面会卡屏");

}catch(Exceptionex){

}

}

};}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值