попробуйте добавить логический пример:
booelan counterIsLaunched = false;
boolean timeChanged = false;
и в вашей реализации счетчика добавьте:
@Override
public void onFinish() { tv_test.setText("");
counterIsLaunched = false;
if(timeChanged) start();
}
@Override
public void onTick(long millisUntilFinished) {
tv_test.setText("d"+ (millisUntilFinished/(3600000*24))+ " h: "+ (millisUntilFinished/3600000)%24 +" m: " + (millisUntilFinished/60000) % 60 + " sec: "+ (millisUntilFinished/1000) % 60);
counterIsLaunched = true;
if(timeChanged) start();
}
и в вашем onStart () попробуйте проверить переменную
if(counter.getCounterIsLaunched() == false ) {
counter.start();
}
и когда вы изменили таймер, сделайте что-то вроде этого:
counter.getTimeChanged() = true;
надеюсь, это поможет человеку:)