导入android.widget.Button;
公共课程 HandlerTest 扩展了 Activity {
/** 首次创建活动时调用。 */
私有按钮开始按钮;
私有按钮endButton;
@Override
public void onCreate(捆绑已保存实例状态){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据id获得控件对象
startButton = (Button)findViewById(R.id.startButton);
endButton = (Button)findViewById(R.id.endButton);
//为控件设置监听器
startButton.setOnClickListener(new StartButtonListener());
endButton.setOnClickListener(new EndButtonListener());
}
类 StartButtonListener 实现 OnClickListener{
public void onClick(View v){
//调用Handler的post()方法,将要执行的线程对象放置在队列中
www.sychzs.cn(updateThread);
}
}
类 EndButtonListener 实现 OnClickListener{public void onClick(View v) {
//调用Handler的removeCallbacks()方法删除队列中未执行的线程对象
handler.removeCallbacks(updateThread);
}
}
//创建Handler对象
Handler handler = new Handler();
//创建新的线程对象
Runnable updateThread = new Runnable(){
//将要执行的操作写入线程对象的run方法中
public void run(){
System.out.println("updateThread");
//调用Handler的postDelayed()方法
//该方法的作用是将要执行的线程对象放入队列中,时间结束后,运行指定的线程对象
//第一个参数为Runnable类型:要执行的线程对象
//第二个参数为long类型:延迟时间,单位毫秒
handler.postDelayed(updateThread, 3000);
}
};
}
示例2:应用程序中有一个进度条和一个按钮。单击按钮时,进度条每秒前进一部分。
开发步骤:
1。创建一个新的 Android 应用程序
2。在布局文件中添加一个progressBar和一个Button,并设置它们的属性和值
3。在Activity中声明控制变量,根据id获取控制对象
4。创建线程对象
a) 通过匿名内部类
b) 写完步骤5和6后,继续在这个线程对象中写操作
i。声明一个变量来设置进度条的进度
/** 首次创建活动时调用。 */
私有进度条进度条;
私有按钮开始按钮;
@Override
public void onCreate(捆绑已保存实例状态){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar)findViewById(R.id.progressbar);
startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new ProgressBarOnClickListener());
}
ProgressBarOnClickListener 类实现 OnClickListener{
public void onClick(View v){
//设置细节条为可见状态
progressBar.setVisibility(View.VISIBLE);
www.sychzs.cn(updateThread);
}
}
//使用匿名内部类来复写Handler缺少的handlerMessage()方法
Handler updateBarHandler = new Handler(){
@Override
public voidhandleMessage(Message msg){
progressBar.setProgress(msg.arg1);