您的位置:首页 > 其它

安卓中实现计时器的功能

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
void
handleMessage(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);

以上就实现了安卓中计时器的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: