Android 2.2のクロノメーター/カウントダウンタイマーアプリを設計中です。ボタンを1回押すと、クロノメーターとが同時に起動します。ですから、理想的には、秒(時間)をに入れてください。クロノメーターとタイマーを同じインスタンスで変更してください。 (タイマーは、クロノメーターがカウントアップしている間もカウントダウンします)。私は、Androidが提供するクロノメーターとタイマー機能を使用していますので、それはであるクロノメーターとタイマーの秒のように見えますが、ユーザが「スタート」ボタンAndroidで同時に2つ以上の機能を開始する
private boolean mStartPressedOnce = false;
long mTimeWhenStopped = 0;
Chronometer mChronometer;
MyCounter mCounter;
...
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.StartButton:
// Perform some initialization for the chronometer depending
// on the button press
if (mStartPressedOnce == false) {
mChronometer.setBase(SystemClock.elapsedRealtime());
} else {
mChronometer.setBase(SystemClock.elapsedRealtime() + mTimeWhenStopped);
}
// Perform the initialization for the timer
mCounter = new MyCount(45000, 1000);
// Fire up the chronometer
mChronometer.start();
// Fire up the timer
mCounter.start();
break;
case R.id.ResetButton:
// Reset the chronometer
mChronometer.setBase(SystemClock.elapsedRealtime());
mTimeWhenStopped = 0;
break;
case case R.id.StopButton:
mStartPressedOnce = true;
// Stop the chronometer
mTimeWhenStopped = mChronometer.getBase() - SystemClock.elapsedRealtime();
mChronometer.stop();
break;
}
...
public class MyCounter extends CountDownTimer {
@Override
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
// Nothing to do here
}
@Override
public void onTick(long millisUntilFinished) {
long seconds = (long) (millisUntilFinished/1000);
long minutes = (long) ((millisUntilFinished/1000)/60);
long hours = (long) (((millisUntilFinished/1000)/60)/60);
// Do some formatting to make seconds, minutes and hours look pretty
// Update the timer TextView
(TextView) findViewById(R.id.CountDownTimerTextView))
.setText(hours + ":" + minutes + ":" + seconds);
}
}
を押したときに、私は以下のコードを書きました同期が最初にと短時間で消えてしまったように見え、両方の更新が異なる時刻に発生します。
私はこれを解決するために何ができるのだろうかと思っていました。私は必要な設計変更があるかもしれないことを認識しますが、私は実行する必要が正確に何か分からないと
Running multiple AsyncTasks at the same time -- not possible?
このスレッドを読んで - 私が渡って来ました。
編集:クロノメーターを使用して時刻を計算するためのクロノメーターとタイマーや方法について含まタイプ - jolivierとnjzk2の提案ごとに
あなたのmクロノメーターとmCounterは何ですか?どのように時間を測定しますか? – njzk2
なぜSystem.nanoTime()またはcurrentTimeMillis()の代わりにウィジェットを使用していますか? – Shark
@Shark、私はあなたの質問に対する答えを知っているかわからない。ありがとう。 – aLearner