知りたいこと
currentTimeMillis()について
ストップウォッチの機能を搭載するにあたって、開始時間と終了時間をそれぞれcurrentTimeMillis()を用いて取得するのですが、スタートボタンを押したとき、開始時間が、現在時間を取得してしまいます。
理想:00:00.00から00:00.86というふうにカウントアップしていく
現在:00:00.00から34:56.02(ストップウォッチの機能を使ったスマホを使っているときの時刻が23時34分56秒だった時)
これを解消するためにはどうしたら良いでしょうか?
ストップウォッチに関するソースコード
Java
1 @Override 2 public void onClick(View arg0) { 3 Thread thread; 4 // if文を用いてタップボタンごとにパターンを変える 5 if (arg0 == stopButton) { 6 aizu = 1; 7 stopRun = true ;//ストップウォッチ機能が動いていないとき、 8 thread = new Thread(this);//スレッド作成 9 thread.start(); 10 timerText.setText(dataFormat.format(0));//タイマーをリセットする。 11 } else { 12 stopRun = false;//ストップウォッチ機能が動いているとき、 13 startTime = System.currentTimeMillis(); 14 15 } 16 } 17 @Override 18 public void run() {//ストップウオッチの機能を作る 19 // 10 msec order 20 int period = 10; 21 while (!stopRun) { 22 // sleep: period msec 23 try {Thread.sleep(period); 24 } 25 catch (InterruptedException e) { 26 e.printStackTrace(); 27 stopRun = true; 28 } 29 handler.post(new Runnable() { 30 @Override 31 public void run() { 32 endTime = System.currentTimeMillis(); 33 // カウント時間 = 経過時間 - 開始時間 34 long diffTime = (endTime - startTime); 35 timerText.setText(dataFormat.format(diffTime)); 36 } 37 }); 38 } 39 }
よろしくお願いします。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/18 01:46
2019/01/18 01:49
2019/01/18 02:00
2019/01/19 07:29
2019/01/21 04:29 編集