android中有定时器功能吗? (不是java.util.Timer)

时间:2012-02-21 09:28:41

标签: android multithreading view timer

是否有计时器功能或计时器是Android中View的子类,可用于跟踪用户的播放时间?

如果我必须构建一个,那么构建一个Thread或Runnable类是不错的,它有一个让自己睡眠1000ms的循环(Thread.sleep(1000))然后更新自己。 e.g。

public class TimerThread extends Runnable{

    private int time;
    boolean run = true;

    public void run(){
        while(run){
            //update the View here
            Thread.sleep(1000);
            time++;
        }
    }
}

4 个答案:

答案 0 :(得分:1)

以下是我在其中一个游戏中使用的一些代码。希望它有所帮助

MyCount counter = new MyCount(30000,10); //set to 30 seconds
counter.start();

public class MyCount extends CountDownTimer{
   long time=0;
   public MyCount(long millisInFuture, long countDownInterval) {
   super(millisInFuture, countDownInterval);
   }
   @Override
   public void onFinish() {
   clock.setText("You lose!"); //clock is a textfield in the game
   restart(); //call you own restart method
   }
   @Override
   public void onTick(long millisUntilFinished) {
   DecimalFormat df=new DecimalFormat("#.##"); //import java.text.DecimalFormat;
   clock.setText("Left: "+ df.format(millisUntilFinished/1000.0));
   time=millisUntilFinished;
   }
   public long getTime(){
       return time;
   }
   }

答案 1 :(得分:1)

这可能会有所帮助。

http://developer.android.com/reference/android/widget/Chronometer.html

我认为你可能需要谷歌一个例子,我自己从未真正使用它,但我听说过它。

答案 2 :(得分:0)

答案 3 :(得分:0)

只是提供更多选项,这是另一种方法:Updating the UI from a Timer