安卓 Handler 消息处理

 


作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/16606989.html


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();
 
posted @   kuaiquxie  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示