カウントダウンタイマーを作る
- AppTheme
- ベクタ形式の画像
- FloatingActionButton
- CountDownTimer
- SoundPool
- 非推奨API処理
Constructor
public CountDownTimer (long millisInFuture, long countDownInterval)
millisInFuture
long型:start()
がコールされてからカウントダウン終了でonFinished()
が呼び出されるまでの時間をミリ秒で指定する。countDownInterval
long型:onTick(long)
でコールバックを受け取る時間間隔を指定する。
Methods
返り値 | メソッド | 説明 |
---|---|---|
final void | cancel() |
カウントダウンをかキャンセルする。 |
abstract void | onFinish() |
カウントダウンが終了したらコールされる。 |
abstract void | onTick(millisUntilFinished: Long) |
一定時間が経過するとコールされる。 |
final CountDownTimer | onStart() |
カウントダウンを開始する。 |
- カウントダウン終了時刻にずれはないが、カウントダウンの
onTick(millisUntilFinished: Long)
がコールバックされるタイミングに誤差がある。 - 端末がディープスリープするとカウントが止まる。
- 実行中のOSバージョン番号は
Build.VERSION.SDK_INT
で取得できる。 - 今までリリースされたすべてのAndroid OSのバージョン番号は
Build.VERSION_CODES
で定義されている。
SoundPoolのコンストラクタは, API21以降では非推奨となるため, SoundPool.Builderでインスタンスを生成して各種属性を設定する対応が必要となる。
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
@Suppress("DEPRECATION")
soundPool = SoundPool(2, AudioManager.STREAM_ALARM, 0)
} else {
val audioAttributes
= AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.build()
soundPool = SoundPool.Builder()
.setAudioAttributes(audioAttributes)
.build()
}
※ @Suppress("DEPRECATION")
というアノテーションは、「非推奨のメソッドを使っているが、対応済みなので検査不要だよ〜」ってことを明示的に示すもの。
定数名 | OSバージョン | バージョン番号 |
---|---|---|
KITKAT | Android 4.4 | 19 |
LOLLIPOP | Android 5.0 | 21 |
LOLLIPOP_MR1 | Android 5.1 | 22 |
M | Android 6.0 | 23 |
N | Android 7.0 | 24 |
N_MR1 | Android 7.1 | 25 |
O | Android 8.0 | 26 |
O_MR1 | Android 8.1 | 27 |
P | Android 9.0 | 28 |
Q | Android 10.0 | 29 |