Android Studio:重置 CountDownTimer
Android Studio: Reset CountDownTimer
我有一个从 10 开始倒计时的计时器,当它达到零时,它会使数组中的随机图像视图变为可见。我只想让这个计时器在每次达到零时自行重置。我怎样才能做到这一点?
当前尝试:
public class rear_gunner extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rear_gunner);
View view2 = findViewById(R.id.item_frame);
final ImageView enemy1 = (ImageView) findViewById(R.id.enemy1);
ImageView enemy2 = (ImageView) findViewById(R.id.enemy2);
ImageView enemy3 = (ImageView) findViewById(R.id.enemy3);
ImageView enemy4 = (ImageView) findViewById(R.id.enemy4);
//sets screen orientation on created
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
view2.bringToFront();
final ImageView[] enemies = new ImageView[4];
enemies[0] = enemy1;
enemies[1] = enemy2;
enemies[2] = enemy3;
enemies[3] = enemy4;
Random rand = new Random();
int n = rand.nextInt(20) + 1;
CountDownTimer countDownTimer = new CountDownTimer(10000, 1000) {
@Override
public void onFinish() {
Random rand = new Random();
int n = rand.nextInt(3) + 1;
enemies[n].setVisibility(View.VISIBLE);
}
@Override
public void onTick(long millisUntilFinished) {
}
};
countDownTimer.start();
}
}
任何帮助或改进此处代码的建议都将不胜感激。
在 OnCreate() 之外创建对象 CountDownTimer,然后在 onFinish() 内完成随机后再次创建对象 .start()
CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countDownTimer = new CountDownTimer(2000, 1000) {
@Override
public void onFinish() {
//what you want to do after CountDownTimer is done
countDownTimer.start(); //start again
}
@Override
public void onTick(long millisUntilFinished) {
}
};
countDownTimer.start();
}
我有一个从 10 开始倒计时的计时器,当它达到零时,它会使数组中的随机图像视图变为可见。我只想让这个计时器在每次达到零时自行重置。我怎样才能做到这一点?
当前尝试:
public class rear_gunner extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rear_gunner);
View view2 = findViewById(R.id.item_frame);
final ImageView enemy1 = (ImageView) findViewById(R.id.enemy1);
ImageView enemy2 = (ImageView) findViewById(R.id.enemy2);
ImageView enemy3 = (ImageView) findViewById(R.id.enemy3);
ImageView enemy4 = (ImageView) findViewById(R.id.enemy4);
//sets screen orientation on created
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
view2.bringToFront();
final ImageView[] enemies = new ImageView[4];
enemies[0] = enemy1;
enemies[1] = enemy2;
enemies[2] = enemy3;
enemies[3] = enemy4;
Random rand = new Random();
int n = rand.nextInt(20) + 1;
CountDownTimer countDownTimer = new CountDownTimer(10000, 1000) {
@Override
public void onFinish() {
Random rand = new Random();
int n = rand.nextInt(3) + 1;
enemies[n].setVisibility(View.VISIBLE);
}
@Override
public void onTick(long millisUntilFinished) {
}
};
countDownTimer.start();
}
}
任何帮助或改进此处代码的建议都将不胜感激。
在 OnCreate() 之外创建对象 CountDownTimer,然后在 onFinish() 内完成随机后再次创建对象 .start()
CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countDownTimer = new CountDownTimer(2000, 1000) {
@Override
public void onFinish() {
//what you want to do after CountDownTimer is done
countDownTimer.start(); //start again
}
@Override
public void onTick(long millisUntilFinished) {
}
};
countDownTimer.start();
}