睡眠()在android中

Sun*_*ary 0 multithreading android sleep runnable

我正在开发一款适用于Android的迷你游戏.我正在使用此代码创建一个在游戏暂停时暂停的3分钟计时器:

class update extends Thread{
    @Override
    public final void interrupt(){
        super.interrupt();
        }
        @Override
        public void run(){
            try{
            while(true){
                sleep(50);
                iTime++;
                if(iTime>=3600)
                    bEnd = true; //finish

                postInvalidate();
                }
            }catch(InterruptedException e){         
                }  
    }
}
update thread = null;

3600 = 20*3*60
Run Code Online (Sandbox Code Playgroud)

计时器在大约5分钟内完成,在大约1.5分钟后在Galaxy Tab中完成.

为什么不总是需要3分钟?我如何确保在3分钟内完成?

Ric*_*cky 5

如何使用Android CountDownTimer类?

// 30 second countdown
new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();
Run Code Online (Sandbox Code Playgroud)

  • 为什么不在`onPause`和`onResume`上设置`isPaused`布尔标志并在计时器中检查? (2认同)