Kotlin пауза хронометра в разное время - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь разработать приложение с хронометром в kotlin, и мне нужно сделать несколько вещей, когда te chrono достигает некоторых условий, но я не могу этого сделать, и я не знаю, почему

Это setOnChronometerTickListener моего приложения

chrono?.setOnChronometerTickListener {
        if (chrono?.base == 180000L && !inPriority) {
            startStopChrono()
            showWinner()
        } else if (chrono?.base? == 30000L && inPriority) {
            println("EEEEEEEEE")
            startStopChrono()
            showWinner()
        }
    }

Проблема в том, что хронограф находится в 30 секундах и условие истинно, не запускайте методы, а также с условием 3 минуты

Спасибо всем

1 Ответ

0 голосов
/ 21 марта 2020

Я думаю, что вы не должны использовать базу, вот решение:

chrono?.setOnChronometerTickListener {
    val elapsed: Long = SystemClock.elapsedRealtime() - it.base
    if (elapsed >= 180000L) {
        println("Elapsed 3 minutes")
    } else if (elapsed >= 30000L) {
        println("Elapsed 30 seconds")
    }
}

Согласно Документация getBase () время возврата от setBase () , если не установлен, он вернет SystemClock.elapsedRealtime в качестве временной базы.

...