Android应用开发之android handle ui 更新
凌雪 2018-08-29 来源 :网络 阅读 1334 评论 0

摘要:本文将带你了解Android应用开发之android handle ui 更新,希望本文对大家学Android有所帮助

本文将带你了解Android应用开发之android handle ui 更新,希望本文对大家学Android有所帮助


 
    Java代码    /** handler更新数据标志 */    protected static final int MSG_UPDATE_DATA                  = 2;    protected static final int MSG_INSERT_DB                    = 0;    /** handler更新数据标志 */
    protected static final int   MSG_UPDATE_DATA                  =   2;
    protected static final int   MSG_INSERT_DB                    =   0;
     
     
    Java代码    public void downloadData() {          updateUIThread( MSG_UPDATE_DATA );          mListView.refreshSelf();      }  public   void downloadData() {
            updateUIThread(   MSG_UPDATE_DATA );
          mListView.refreshSelf();
    }
   
     
    Java代码  public void updateUIThread( final int type ) {         new Thread( new Runnable() {             @Override             public void run() {                 mUIhandler.sendEmptyMessage( type );             }         } ).start();     }     public void updateUIThread( final int type ) {
            new Thread( new Runnable()   {
            @Override
            public void run() {
                  mUIhandler.sendEmptyMessage( type );
            }
        } ).start();
    }
     
    Java代码    /** 刷新UI handler */    private Handler  mUIhandler    = new Handler() {      public void handleMessage(  android.os.Message msg ) {      switch ( msg.what ) {          case MSG_UPDATE_DATA:          updateListView( ( List ) TaskDbManager .getData( TaskDbManager.TABLE_TASK_RECEIVE, mQueryByState ) );          break;           default:           break;    }     };  ;     /** 刷新UI handler */
       private Handler  mUIhandler    = new Handler() {
    public void handleMessage(  android.os.Message msg ) {
     switch ( msg.what ) {
         case MSG_UPDATE_DATA:
     updateListView( ( List) TaskDbManager   .getData( TaskDbManager.TABLE_TASK_RECEIVE, mQueryByState ) );
     break;
          default:
      break;
   
     }
        };
    };
     
     
     
     
     
     
     
     
     
     
     
     
     
    handler 处理方法
    Java代码    消息处理代码:      private Handler handler = new Handler() {      public void handleMessage(Message msg) {          switch (msg.what) {              case 1 :                  bt.setText("正在下载...");                  break;              case 2 :                  Bitmap bm = (Bitmap) msg.obj;                  iv.setImageBitmap(bm);                  break;              case 3 :                  Bundle bundle = msg.getData();                  String data = bundle.getString("text");                  bt.setText(data);                  break;          }      }  };    消息发送代码:  方式一:  示例1:   Message.obtain(handler,1).sendToTarget();    示例2:   Bitmap bm = NetUtil.downloadNewImg();   Message.obtain(handler, 2, bm).sendToTarget();    示例3:   // 这条消息,不携带数据,而是携带一段代码, 主线程处理这条消息时,会执行它携带的代码,而不执行其他代码  Message.obtain(handler, new Runnable() {      public void run() {          bt.setText("下载内涵图");        }  }).sendToTarget();  方式二:    示例1:   handler.obtainMessage(1).sendToTarget();    示例2:   Bitmap bm = NetUtil.downloadNewImg();   handler.obtainMessage(2, bm).sendToTarget();     方式三:  示例1:   Message msg = new Message();   msg.what =1;   handler.sendMessage(msg);    示例2:   Message msg = new Message();   msg.what =2;   msg.obj = bm;   handler.sendMessage(msg);    示例3:   Message msg = new Message();   Bundle data = new Bundle();   data.putString("text", "正在下载...");   msg.what = 3;     msg.setData(data);   handler.sendMessage(msg);    示例4:  // 创建一个携带代码的消息对象,并发送给主线程执行  handler.post(new Runnable() {      public void run() {          // 在主线程中,处理消息时执行          Toast.makeText(                  MainActivity.this, "下载结束",                   Toast.LENGTH_SHORT).show();      }  });  消息处理代码:
        private Handler handler = new   Handler() {
    public void handleMessage(Message   msg) {
        switch (msg.what) {
            case 1 :
                  bt.setText("正在下载...");
                break;
            case 2 :
                Bitmap bm = (Bitmap)   msg.obj;
                  iv.setImageBitmap(bm);
                break;
            case 3 :
                Bundle bundle =   msg.getData();
                String data =   bundle.getString("text");
                  bt.setText(data);
                break;
        }
    }
    };
   
    消息发送代码:
    方式一:
    示例1:
    Message.obtain(handler,1).sendToTarget();
   
    示例2:
    Bitmap bm = NetUtil.downloadNewImg();
    Message.obtain(handler, 2, bm).sendToTarget();
   
    示例3:
    // 这条消息,不携带数据,而是携带一段代码, 主线程处理这条消息时,会执行它携带的代码,而不执行其他代码
    Message.obtain(handler, new Runnable() {
        public void run() {
        bt.setText("下载内涵图");
   
        }
    }).sendToTarget();
    方式二:
   
    示例1:
    handler.obtainMessage(1).sendToTarget();
   
    示例2:
    Bitmap bm = NetUtil.downloadNewImg();
    handler.obtainMessage(2, bm).sendToTarget();
   
    方式三:
    示例1:
    Message msg = new Message();
    msg.what =1;
    handler.sendMessage(msg);
   
    示例2:
    Message msg = new Message();
    msg.what =2;
    msg.obj = bm;
    handler.sendMessage(msg);
   
    示例3:
    Message msg = new Message();
    Bundle data = new Bundle();
    data.putString("text", "正在下载...");
    msg.what = 3;
   
    msg.setData(data);
    handler.sendMessage(msg);
   
    示例4:
    // 创建一个携带代码的消息对象,并发送给主线程执行
    handler.post(new Runnable() {
        public void run() {
        // 在主线程中,处理消息时执行
        Toast.makeText(
                MainActivity.this,   "下载结束",
                Toast.LENGTH_SHORT).show();
    }
    });
     
     

     
         

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved