2016-06-16 33 views
0

我想做一些我不確定可以做的事情,到目前爲止我還沒有找到任何對我的問題有好的答案。重新啓動可運行變量Android

這裏是我的情況:
- 我已經實現TimerHandlerRunnable被自稱每1秒。
- 我現在需要實現一個方法,如Timer.restart(),可以重新啓動我的Runnable's PARAMS。

這裏是我的代碼,所以你可以看到它,並更好地瞭解我所試圖實現

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,然後調用運行從開始開始。

這樣的事情可能嗎?

謝謝!

回答

0

您的runnable是一個類。你可以添加任何你想要的方法。只要保留對它的引用並調用一個方法就可以了(要做到這一點,你可能希望使它成爲內部類而不是匿名類)。

+0

是的,但正如你所看到的,這是一個匿名類,但我想我知道一個解決方案。 我將創建自己的Runnable子類,該子類具有一個名爲restart()的方法,以便每個實現該類的類都必須重寫該方法。 :D –

+0

然後讓它匿名中午。沒有理由每個班都必須是匿名的 –

+0

是的,但後來我會有更多的班,我的方式,我已經做到了,子類只需要1,這是我的編碼風格,所以我現在有點喜歡它。 –

相關問題