⒈主要用途
未来某时做某事【可能是延时执行的,也可能是立即执行的】
线程间通信【安卓操作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();