Android CountDownTimer とDateFormat
■ インポート部
import android.widget.Toast;
import android.os.CountDownTimer;
import java.text.SimpleDateFormat;
import java.util.Locale;
~
■ 変数の定義
private SimpleDateFormat dataFormat =
new SimpleDateFormat("mm:ss.SSS", Locale.US);
public MyView myView;
~
■タイマーの初期化
myView = this.findViewById(R.id.myview);
// 60秒= 60x1000 = 60,000 msec
long countNumber = 60000;
// インターバル msec
long interval = 1000;
// インスタンス生成
final CountDown countDown = new CountDown(countNumber, interval);
// 開始
countDown.start();
// 中止
// countDown.cancel();
■タイマーの本体
class CountDown extends CountDownTimer {
CountDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
// 完了
Toast.makeText(getApplicationContext(), "完了: " + dataFormat.format(0), Toast.LENGTH_SHORT).show();
}
// インターバルで呼ばれる
@Override
public void onTick(long rest_msec) {
// 残り時間を分、秒、ミリ秒に分割
//long mm = rest_msec / 1000 / 60;
//long ss = rest_msec / 1000 % 60;
//long ms = rest_msec - ss * 1000 - mm * 1000 * 60;
//timerText.setText(String.format("%1$02d:%2$02d.%3$03d", mm, ss, ms));
Toast.makeText(getApplicationContext(), "残り: " + dataFormat.format(rest_msec), Toast.LENGTH_SHORT).show();
myView.time_count_down = rest_msec;
myView.invalidate();
}
}