Я пытаюсь закодировать приложение с помощью CountdownTimer, когда время истечет, в Textview будет отображаться имя, оно работает нормально.Но моя проблема в том, что когда я возвращаюсь к основному виду деятельности, счетчик все еще работает, и каждый раз, когда счетчик заканчивается, воспроизводится звук и вибрации.
Я добавил новую функцию openMainactivity и установил timer.cancel.();timer = null ;, но у меня все равно не работает.спасибо за ответ.
Код CountDownTimer:
CountDownTimer timer= null;
public void startTimer () {
timer= new CountDownTimer(timerZeit * 1000, 1000) {
public void onTick(long millisUntilFinished) {
updatetime((int) millisUntilFinished / 1000);
}
public void onFinish() {
if (sound == 1) {
playSound();
}
if (vib == 1) {
startVib();
}
if(timer != null){
timer.cancel();
reStart();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startTimer();
}
}, 3000);
}
}
};
timer.start();
public void reStart (){
Random randomGenerator = new Random();
randomNumber = randomGenerator.nextInt(user);
String item = arrayList.get(randomNumber);
TextViewName.setText(item);
}
public void playSound () {
mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.airhorn);
mediaPlayer.start();
}
public void startVib (){
// Toast.makeText(getApplicationContext(),"test", Toast.LENGTH_LONG).show();
vibrator= (Vibrator) getSystemService(VIBRATOR_SERVICE);
vibrator.vibrate(VibrationEffect.createOneShot(2000,VibrationEffect.DEFAULT_AMPLITUDE));
}
public void openMainActivity(){
timer.cancel();
timer=null;
Intent intent = new Intent(this,MainActivity.class );
startActivity(intent);
}