Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/takumi314/android-kotlin-countdown-timer
Android学習用のサンプルアプリ - AppTheme・ベクタ形式の画像・FloatingActionButton・CountDownTimer・SoundPool・非推奨API処理
https://github.com/takumi314/android-kotlin-countdown-timer
android countdowntimer depricated floatingactionbutton kotlin soundpool
Last synced: 1 day ago
JSON representation
Android学習用のサンプルアプリ - AppTheme・ベクタ形式の画像・FloatingActionButton・CountDownTimer・SoundPool・非推奨API処理
- Host: GitHub
- URL: https://github.com/takumi314/android-kotlin-countdown-timer
- Owner: takumi314
- Created: 2020-01-21T14:27:57.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-01-25T12:54:48.000Z (almost 5 years ago)
- Last Synced: 2024-11-08T15:27:49.558Z (about 2 months ago)
- Topics: android, countdowntimer, depricated, floatingactionbutton, kotlin, soundpool
- Language: Kotlin
- Homepage:
- Size: 955 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# android-kotlin-countdown-timer
## Goal
カウントダウンタイマーを作る## 必要な知識
- AppTheme
- ベクタ形式の画像
- FloatingActionButton
- CountDownTimer
- SoundPool
- 非推奨API処理## CountDownTimerクラス
- [CountDownTimer - android developers](https://developer.android.com/reference/android/os/CountDownTimer)**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)` がコールバックされるタイミングに誤差がある。
- 端末がディープスリープするとカウントが止まる。## 非推奨APIを処理する
- 実行中のOSバージョン番号は `Build.VERSION.SDK_INT` で取得できる。
- 今までリリースされたすべてのAndroid OSのバージョン番号は `Build.VERSION_CODES` で定義されている。### Ex. AaPI21(Lollipop)以降で非推奨である対応例
SoundPoolのコンストラクタは, API21以降では非推奨となるため, SoundPool.Builderでインスタンスを生成して各種属性を設定する対応が必要となる。
```kt:
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")`というアノテーションは、「非推奨のメソッドを使っているが、対応済みなので検査不要だよ〜」ってことを明示的に示すもの。
### Build.VERSION_CODES の定数
定数名 | 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