2016-06-16 11 views
0

Ich möchte etwas tun, ich bin mir nicht sicher, kann getan werden, und bis jetzt habe ich keine gute Antworten auf meine Frage gefunden.Neustart Runnable Variablen Android

Hier ist meine Situation:
- ich Timer als Handler implementiert haben, die Runnable hat, die sich alle 1s ruft.
- Ich muss jetzt eine Methode wie Timer.restart() implementieren, die meine Runnable's Parameter neu starten kann.

Hier ist mein Code, damit Sie es sehen können, und besser zu verstehen, was ich

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; 
    } 
}; 

Mein runnable zu erreichen versucht haben, ich will resetCPRTick() von außen Runnable anrufen können, und rufen Sie dann laufen das beginnt am Anfang.

Ist so etwas möglich?

Danke !!

Antwort

0

Ihr Runnable ist eine Klasse. Sie können beliebige Methoden hinzufügen, die Sie möchten. Behalte einfach einen Verweis darauf und rufe eine Methode auf, die das tut (um dies zu erreichen, möchtest du es wahrscheinlich zu einer inneren Klasse und nicht zu einer anonymen Klasse machen).

+0

Ja, aber wie Sie sehen können, ist es eine anonyme Klasse, aber ich denke, ich kenne eine Lösung. Ich werde meine eigene Unterklasse von Runnable erstellen, die eine Methode namens restart() hat, so dass jede Klasse, die diese Klasse implementiert, diese Methode überschreiben muss. : D –

+0

Dann mach es mittags anonym. Es gibt keinen Grund, dass eine Klasse alle anonym sein muss. –

+0

Ja, aber dann werde ich mehr Klassen haben, so wie ich es gemacht habe, Subclassing erfordert nur 1, und das ist meine Art zu programmieren, also mag ich es jetzt irgendwie. –