Вот код. Существует переменная, чтобы определить, работает ли таймер, называемый «Istimerrunning». Существует функция, которая запускает таймер, используя петлю while внутри прицела Coroutine, называемого «Starttimer». Существует функция, останавливает таймер и сбрасывает его обратно в ноль, называемый «переселенник». Существует текстовый композитный, который отображает время. Есть две кнопки: одна запускает таймер, другой сбрасывает его. < /P>
Код: Выделить всё
// Time Variable
var time by remember { mutableIntStateOf(0) }
// Is Timer Running Variable
var isTimerRunning by remember { mutableStateOf(false) }
// Start Timer Function
fun startTimer() {
isTimerRunning = true
CoroutineScope(Dispatchers.IO).launch {
while (isTimerRunning) {
delay(1000)
time += 1
}
}
}
// Reset Timer Function
fun resetTimer() {
isTimerRunning = false
time = 0
}
// App Layout
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
modifier = Modifier
.fillMaxSize()
) {
// Display Timer
Text(text = time.toString())
// Start Timer Button
Button(onClick = { startTimer() }) {
Text(text = "Start")
}
// Reset Timer Button
Button(onClick = { resetTimer() }) {
Text(text = "Reset")
}
}
< /code>
Как я уже говорил выше, таймер увеличивается на один после сброса до нуля. Я попытался поместить коратику в функцию «переселения» и положить задержку в тридцать миллисекунд между двумя такими переменными < /p>
fun resetTimer() {
CoroutineScope(Dispatchers.IO).launch {
isTimerRunning = false
delay(30)
time = 0
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... in-android
Мобильная версия