我已经在我的游戏中使用CountDownTimer实现了一个简单的计时器,我需要它在活动开始时几秒钟内开始计时。
在我的主要活动的onCreate方法上,我将其称为:
playingTime();
如下所示
public void playingTime() {
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
String elapsedTime = String.valueOf(millisUntilFinished / 1000);
timer.setText(elapsedTime);
}
public void onFinish() {
timer.setText(R.string.timer_game_over_text);
}
}.start();
}
启动活动后,计时器正常但立即启动。我想在执行之前设置延迟,或者是否有更好的方法在游戏中设置计时器。 (倒数计时器和正常计时器)
答案 0 :(得分:2)
您可以使用Handler添加延迟,如下所示:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Executed after YOUR_DELAY_IN_MILLIS
playingTime()
}
}, YOUR_DELAY_IN_MILLIS);
将代码放入活动的onCreate()方法
答案 1 :(得分:2)
您可以在如下所示的 onCreate()方法中使用该处理程序,并在1秒后调用 playingTime
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
playingTime();
}
}, 1000);
答案 2 :(得分:1)
您可以这样设置延迟时间:
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
// call method here
}
}, MY_DELAY_IN_MS);
以自己的延迟替换MY_DELAY_IN_MS