安卓中实现计时器的功能
2014-11-04 15:47
148 查看
在安卓中我们有时候要实现计时器的功能,并将计时的事件显示出来,首先我们来讲一下计时器是怎样实现的,计时器的实现原理是:开启另外一个线程来实现计时,在这个线程里面程序将计时,并将计时的结果显示在界面上。代码实例如下:
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);
以上就实现了安卓中计时器的功能。
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);
以上就实现了安卓中计时器的功能。
相关文章推荐
- 关于安卓如何实现计时器chronometer的暂停和继续计时功能
- JS实现钟表计时器功能
- 安卓打电话功能的实现
- 安卓之实现一个简单的短信发送功能
- chronometer计时器实现暂停功能与初始值为0的功能
- 安卓换肤功能实现
- ASP.NET中使用计时器(Timer)来实现群发邮件等功能(转载)
- 安卓更新软件功能的实现 (不使用webview)
- 安卓之实现一个简单的电话拨号功能
- 安卓经典功能组件篇1——实现界面的异步刷新
- 用mqtt实现安卓手机软件的服务器推送功能
- 安卓收藏夹,增删查功能实现
- mqtt实现基本安卓推送功能
- 初识安卓之从web服务器上获取资源显示到手机,实现手机归属地查询功能
- 手把手教你如何在安卓平台上实现打电话发短信的功能
- 安卓之实现一个简单的短信发送功能
- 安卓手机连接蓝牙打印机实现打印功能
- 安卓局域网飞讯:聊天,文件发送,对讲机功能实现!
- 安卓截屏功能实现
- [置顶] 安卓手机连接蓝牙打印机实现打印功能