我想写一些应用程序,我希望某些事情按计划发生。
每隔几分钟轮询一次 URL 以获取更新似乎是一个相当常见的用例。不过,在这种特殊情况下,我只是想实现一个时钟。
这有效:
@Composable
fun App() {
var ticks by remember { mutableStateOf(0) }
// Not 100% happy about this unused variable either
val timer = remember {
Timer().apply {
val task = object : TimerTask() {
override fun run() {
ticks++
}
}
scheduleAtFixedRate(task, 1000L, 1000L)
}
}
MaterialTheme {
Text(
// A real application would format this number properly,
// but that's a different question
text = "$ticks"
)
}
}
但是我必须 import java.util.Timer
,所以它不会是便携式的。
Jetpack Compose 可以做动画,所以它肯定在某个地方有自己的计时器,这意味着应该有一些可移植的方式来做到这一点,但我似乎无法弄清楚。
有没有一种跨平台的方式来为此目的获取计时器?