2016-06-16 95 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,这是我的编码风格,所以我现在有点喜欢它。 –

相关问题