Я хочу сделать то, что я не уверен, что можно сделать, и до сих пор я не нашел хороших ответов на мой вопрос.Restart Runnable Variables Android
Вот моя ситуация:
- я реализовал Timer
как Handler
, который имеет Runnable
, который называет себя каждые 1s.
- Мне нужно реализовать такой метод, как Timer.restart()
, который может перезагрузить параметры Runnable's
.
Вот мой код, чтобы вы могли видеть его, и лучше понять, что я пытался достичь
private Runnable rStartCPRTick = new Runnable() {
public int seconds = 0;
public int minutes = 0;
public int hours = 0;
@Override
public void run() {
if(++seconds%60 == 0) //increases the time by one second
if(++minutes%60 == 0)
hours++;
mActivity.updateCPRTime(formatHHMMSS(hours,minutes,seconds));
mStartCodeHandler.postDelayed(this,1000); // tick again in 1s
}
public void restartCPRTick(){
seconds = 0;
minutes = 0;
hours = 0;
}
};
Мои работоспособным, я хочу, чтобы иметь возможность вызывать resetCPRTick()
извне Runnable
, а затем вызова запуска который начинается с самого начала.
Возможно ли такое?
Спасибо!
Да, но, как вы можете видеть, это анонимный класс, но я думаю, что знаю решение. Я создам свой собственный подкласс Runnable, который имеет метод restart(), так что каждый класс, который реализует этот класс, должен будет переопределить этот метод. : D –
Затем сделайте его полдень анонимным. Нет причин, по которым класс должен быть анонимным. –
Да, но тогда у меня будет больше классов, мой способ, которым я это сделал, для подкласса требуется только 1, и это мой стиль кодирования, поэтому мне это нравится сейчас. –