2016-06-30 3 views
1

のは、私は、この変数を持っているとしましょう:特定の開始時間でどのようにクロノメーターを始めることができますか?

long myMillis = 20000; 

これは私が私のクロノメーターが正確に20秒(0時20)で開始することを意味します。

私はこれやってみました:

chronometer.setBase(myMillis); 

をしかし、それは動作しません。それは20秒で始まりません。それは意味をなさない奇妙な時間から始まります。

+0

[Android:Chronometer SetBase in minutes]の複製が可能です(http://stackoverflow.com/questions/14788242/android-chronometer-setbase-in-minutes) – giannisf

答えて

2

(あなたが特定のNRに ベースを設定したい場合は)一般的にはクロノメーターは、次のように動作します。

mChronometer.setBase(SystemClock.elapsedRealtime() - (nr_of_min * 60000 + nr_of_sec * 1000))) 

ので作る:

mChronometer.setBase(SystemClock.elapsedRealtime() - (2* 60000 + 0 * 1000))) 
+0

ありがとうございました!出来た。しかし、私はなぜこれが複雑でなければならないのか分かりません。誰かが説明を持っているなら、それは素晴らしいでしょう。 – Guy

+0

@Whiz公式の文書https://developer.android.com/reference/android/widget/Chronometer.htmlを読むことができます。 – giannisf

1

そのを遅くなるが、他人を助けるかもしれない。 Iは最初のフラグメント

chronometerTimer.setBase(SystemClock.elapsedRealtime()); 
chronometerTimer.start(); 

で次のコードを使用した後、私はこのコードを使用して経過時間を取得終了chornometerが前chornometerと同時に開始すべき次のフラグメントにはいくつかの状態に移動しています。

long elapsedMillis = SystemClock.elapsedRealtime() - chronometerTimer.getBase(); 

と私はそれが完全に働いた

chronometerTimer.setBase(SystemClock.elapsedRealtime() - elapsedTime); 
chronometerTimer.start(); 

次のフラグメントおよび使用次のコードでelapsedMilisを送信してください。

関連する問題