在安卓中我们有时候要实现计时器的功能,并将计时的事件显示出来,首先我们来讲一下计时器是怎样实现的,计时器的实现原理是:开启另外一个线程来实现计时,在这个线程里面程序将计时,并将计时的结果显示在界面上。代码实例如下:
1、计算游戏所用时间的函数
private String timeParser(int totalSecond) {
StringBuffersb = newStringBuffer();
int minute = totalSecond /60;
sb.append(minute);
sb.append(":");
int second = totalSecond %60;
if (second >= 10)
sb.append(second);
else
sb.append("0" + second);
return sb.toString();
}
2、要开启计算时间的线程
class GameRunable implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
while (isGaming) {
try {
second++;
Messagemsg = newMessage();
msg.what = TIME_MESSAGE;
mHandler.sendMessage(msg);
Thread.sleep(1000);
}catch(InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
// 用hander接收消息
HandlermHandler= newHandler() {
@Override
public voidhandleMessage(android.os.Message msg) {
switch (msg.what) {
case TIME_MESSAGE:
//将时间显示出来
timeTV.setText(timeParser(second));
isGaming = mshuduview.isGameing();
if (!isGaming)
isFirstThread = false;
break;
case INIT_MESSAGE:
//将时间显示出来
timeTV.setText(timeParser(second));
mshuduview.restart();
break;
}
super.handleMessage(msg);
}
};
上面是要实现的线程,下面讲述怎样调用此线程实现计时效果:
// 初始化
isGaming = true;
second = 0;
mshuduview.setGameing(isGaming);
// 初始化线程
isFirstThread = true;
new Thread(new GameRunable()).start();
Messagemsg = newMessage();
msg.what = INIT_MESSAGE;
mHandler.sendMessage(msg);
以上就实现了安卓中计时器的功能。