Android复习笔记(12) -handler的使用

来源:互联网 发布:最流行的网络语言 编辑:程序博客网 时间:2024/06/06 05:07
    handler主要实现现在之间的通信。在子线程中执行耗时操作,通过handler传递数据给主线程进行UI的更新。

用法:
    1.在主线程中创建Handler子类对象, 重写handleMessage()方法
    2. 在子线程中调用handler.sendMessage(msg)向主线程发消息
    3. 在handler的handleMessage接收到消息,进行ui的更新。

用法2: post()
    直接调用handler.post(Runnable)方法,里面接收一个Runnable接口,可在匿名类直接更新UI.与RunOnUIThread方法类似。

例1.
//创建handler对象
private Handler handler = new Handler() {
  public void handleMessage(android.os.Message msg) {
    //UI更新
   tv.setText(msg.obj + "");
  };
 };
 public void click(View v) {
  new Thread() {
   public void run() {
    for ( int i = 0;  i < 100; i ++) {
     Message msg = handler.obtainMessage();
     msg.obj = i;
    //子线程中发消息
     handler.sendMessage(msg);
     System.out.println(i);
     SystemClock.sleep(1000);
    }
   };
  }.start();
 }

//2.例2: post
handler.post(new Runnable() {
      @Override
      public void run() {
       tv.setText(i + "");
      }
     });

0 0
原创粉丝点击