Android -- Handler消息处理

⒈主要用途

  未来某时做某事【可能是延时执行的,也可能是立即执行的】

  线程间通信【安卓操作UI界面需要在主线程当中,非主线程是不能够进行UI操作的,比如网络请求需要发起另外一个线程去发起网络请求,然后将结果返回给主线程,让主线程去处理】

⒉用法

        Handler handler = null;
        //用法1,延时任务
        //在当前Activity停留3秒钟后跳转到TestActivity
        handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(HandlerActivity.this,TestActivity.class);
                startActivity(intent);
            }
        }, 3000);


        //用法2,线程间通信
        handler = new Handler(){
            //handler可以发送消息,也可以处理消息,当handler接收到消息后,可以根据message的不同
            //可以在handleMessage方法去做一些相应的操作
            @Override
            public void handleMessage(@NonNull Message msg) {
                super.handleMessage(msg);
                switch (msg.what){
                    case 1:
                        Toast.makeText(getApplicationContext(),"线程通信成功",Toast.LENGTH_LONG).show();
                        break;
                }
            }
        };

        new Thread(){
            @Override
            public void run() {
                super.run();
                //发送消息
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            }
        }.start();

猜你喜欢

转载自www.cnblogs.com/fanqisoft/p/12171210.html