サイトアイコン ハジカラ

【Mac・Android Studio】ストップウォッチを作ってみる その6ー時間の処理TimerTask

こんにちは。

今回は、TimerTaskの中身を作っていきます😁

100ミリ秒(=1秒)呼ばれるごとに、1カウントしていって、
それを分・秒・ミリ秒で出し分ける計算をする処理になります。

↓ MainActivity.javaの中に新しくクラスを作成します(countUpTime)。
  countUpTimeクラスにTimerTaskを継承(extends)します。
  これで、このクラスはTimerTaskとして動きます。

public class countUpTime extends TimerTask {

// run関数

    }

↓ TimerTaskクラスには、run関数が必須になります。
  runクラスの中にはハンドラー処理を記述します。

@Override
public void run() {
// ハンドラー処理
}

↓ 以下ハンドラーの処理です。
  一気に記述します。

// ハンドラークラス 時間結果をメッセージキューにPostする
handler.post(new Runnable() {
@Override
public void run() { //run関数を実行
// 時間に1をプラスする。
timerSet++;

// 36000(60分)過ぎた場合、Endを表示し続ける
if (timerSet > 36000) {
text.setText(“End!”);
} else {

long mm = timerSet / 10 / 60; // 分の計算
long ss = timerSet / 10 % 60; // 秒の計算
long ms = (timerSet – ss * 10 – mm * 10 * 60); // ミリ秒の計算

// テキストに結果をセット
text.setText(
String.format
                                                                       (Locale.US, “%1$02d:%2$02d.%3$02d”, mm, ss, ms));

}
}
});

ハンドラークラスに関しては、スレッドの非同期処理など複雑な処理ができる
ようですが、今回はカウントアップするだけの簡単な処理のためシンプルに作ります。
Runnable()はrun関数で使用する入れ物のようなもので、
セットで考えていいでしょう。

TimerTaskが呼ばれ、ハンドラー処理をするごとにtimerSetが1足されます。
あと、仕様としては、60分たった時点でカウントを終了するようにしています😁😁

起動は次回にしましょう。

今回はここまで🤚

では、また次回。

モバイルバージョンを終了