Colton Idle
03/19/2024, 3:15 PM//start reoccruing task on kiosk
viewModelScope.launch {
while (true) {
delay(state.delayInterval)
syncUseCase.sync()
}
}
fwiw, I'm assuming it would be saving a reference to this "job" and then cancelling it, and restarting it? Or maybe I shouldn't use my viewModelScope and just create a different one? Maybe another trick I'm missing?Sam
03/19/2024, 3:22 PMdelayInterval
in a StateFlow
and use collectLatest
on it.
val delayInterval = MutableStateFlow(someDelay)
viewModelScope.launch {
delayInterval.collectLatest { interval ->
while(true) {
delay(interval)
syncUseCase.sync()
}
}
}
Colton Idle
03/19/2024, 3:23 PMColton Idle
03/19/2024, 3:24 PMColton Idle
03/19/2024, 3:24 PMColton Idle
03/19/2024, 3:26 PMsnapshotFlow { state.delayInterval }.collectLatest { interval ->
Colton Idle
03/19/2024, 3:26 PMColton Idle
03/19/2024, 3:35 PMSam
03/19/2024, 3:35 PMJosh Eldridge
03/19/2024, 5:53 PM