我在 viewModel 中保留时间状态,需要将当前状态存储在首选项中,并在用户关闭并再次打开应用程序时再次加载时间状态。这是我当前的代码。
视图模型
class TimeViewModel(): ViewModel(){
private val _time = MutableLiveData<Long>()
val time: LiveData<Long> = _time
fun onTimeChange(newTime: Long) {
_time.value = newTime
}
}
可组合功能
@Composable
fun Timer(timeViewModel:TimeViewModel = viewModel()){
LaunchedEffect(key1 = time ){
delay(1000L)
timeViewModel.onTimeChange(time + 1)
}
val time: Long by timeViewModel.time.observeAsState(0L)
val dec = DecimalFormat("00")
val min = time / 60
val sec = time % 60
Text(
text = dec.format(min) + ":" + dec.format(sec),
style = MaterialTheme.typography.body1
)
}