2016-06-16 13 views
0

私は何かをしたいと思っていますが、私の質問には良い答えが見つかりませんでした。Runnable Variablesを再起動するAndroid

は、ここに私の状況です:
- 私は自分自身にすべての1秒を呼び出しているRunnableを持ってHandlerとしてTimerを実装しています。
- パラメータを再起動できるTimer.restart()のようなメソッドを実装する必要があります。ここで

は私のコードは、あなたがそれを見て、より良い私は

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

マイ実行可能な達成しようとしてきたかを理解することができますので、私はRunnable外部からresetCPRTick()を呼び出し、実行を呼び出すことができるようにしたいですそれは冒頭から始まります。

このようなことは可能ですか?

ありがとうございます!

答えて

0

あなたの実行可能ファイルはクラスです。あなたはそれに任意のメソッドを追加することができます。それを参照したまま、それを行うメソッドを呼び出すだけです(これを行うには、おそらくアノニマスクラスではなく内部クラスにしたいと思うかもしれません)。

+0

はい、ご覧のとおり、匿名のクラスですが、私は解決策を知っていると思います。 私は、そのクラスを実装するすべてのクラスがそのメソッドをオーバーライドする必要があるように、restart()というメソッドを持つ独自のRunnableのサブクラスを作成します。 :D –

+0

それから正午の正午にしてください。クラスはすべて匿名でなければならない理由はありません。 –

+0

はい、しかし、私はもっとクラスを持っています。私のやり方は、サブクラス化は1だけ必要です。それは私のスタイルのコーディングです。 –

関連する問題