您的位置:首页 > 移动开发 > Android开发

android简易倒数计时器

2011-04-18 11:28 375 查看
自己做的一个简易的倒数计时器。用一个线程和handler做的。
输入设定的时间的界面:是SetTime的Acitivity



点击确定后转到下面的界面:CountdownTimer的Acitivity



暂停后的界面:



有什么错误或不足之处还请各位指点:
项目文件在附件中,环境:ubuntu10.04+eclipse galileo
部分代码贴出来:

//实现三个按钮操作的内部类
private View.OnClickListener listener= new View.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.start:
{
//开始计时
updateHandler.post(updateThread);
break;
}
case R.id.pause:
{
//暂停计时
updateHandler.removeCallbacks(updateThread);
break;
}
case R.id.reset:
{
//重新设置
updateHandler.removeCallbacks(updateThread);
Intent intentReset=new Intent();
intentReset.setClass(CountdownTimer.this, SetTime.class);
CountdownTimer.this.startActivity(intentReset);
break;
}
}
}

};
//处理数据的线程,使用匿名内部类。
Runnable updateThread = new Runnable(){

@Override
public void run() {
//获取消息
Message msg=updateHandler.obtainMessage();

try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
while(time>0){
time--;
break;
}
hoursInt=time/3600;
minutesInt=(time-hoursInt*3600)/60;
secondsInt=time-hoursInt*3600-minutesInt*60;
//把此消息发送到消息队列中
updateHandler.sendMessage(msg);
//如果计时为0,就updateThread线程从线程队列中删除掉
if(time==0){
updateHandler.removeCallbacks(updateThread);
}
}};

Handler updateHandler=new Handler(){
//把消息从消息队列中取出处理
public void handleMessage(Message msg){
seconds.setText(secondsInt+"");
minutes.setText(minutesInt+"");
hours.setText(hoursInt+"");
updateHandler.post(updateThread);

}
};
}

本文出自 “six” 博客,请务必保留此出处http://six518.blog.51cto.com/389958/547594
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: