Chinaunix首页 | 论坛 | 博客
  • 博客访问: 902666
  • 博文数量: 215
  • 博客积分: 10062
  • 博客等级: 上将
  • 技术积分: 2235
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-01 13:21
文章分类

全部博文(215)

文章存档

2012年(1)

2011年(24)

2009年(16)

2008年(91)

2007年(83)

我的朋友

分类: Java

2011-01-17 22:32:39

1.Handler的基本概念:
  提供异步执行的方法;
 
2.Handler的基本使用方法:
  (1)创建Handler对象
 (2)调用handler的Post方法,将要执行的线程队列中
 (3)将用执行的操作写到线程对象的run方法中;
 (4)在run方法内部执行postDelayed或者是Post中;
 
 
3.使用Handler更新ProgressBar:
   (1)线程队列(hander.post(线程))
   (2)消息队列:
            Message msg = updateBarHandler.obtainMessage();
            msg.arg1 = i ;
            updateBarHandler.sendMessage(msg);
 
eg:

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class HandlerActivity extends Activity {
    /** Called when the activity is first created. */
 //声明两个按钮控件
 private Button startButton = null;
 private Button endButton = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //根据控件的ID得到代表控件的对象,并未这两个按钮设置相应的监听器
        startButton = (Button)findViewById(R.id.startButton);
        startButton.setOnClickListener(new StartButtonListener());
        endButton = (Button)findViewById(R.id.endButton);
        endButton.setOnClickListener(new EndButtonListener());
       
    }
    class StartButtonListener implements OnClickListener{

  @Override
  public void onClick(View v) {
   //调用Handler的post方法,将要执行的线程对象添加到队列当中
   handler.post(updateThread);
  }
     
    }
   
    class EndButtonListener implements OnClickListener{

  @Override
  public void onClick(View v) {
   handler.removeCallbacks(updateThread);
  }
     
    }
    //创建一个Handler对象
    Handler handler  = new Handler();
    //将要执行的操作写在线程对象的run方法当中
    Runnable updateThread =  new Runnable(){

  @Override
  public void run() {
   System.out.println("UpdateThread");
   //在run方法内部,执行postDelayed或者是post方法
   handler.postDelayed(updateThread, 3000);
  }
     
    };
}

 
阅读(952) | 评论(0) | 转发(0) |
0

上一篇:解析XML

下一篇:Handler的使用<二>

给主人留下些什么吧!~~