Logan Knight
01/29/2021, 6:40 PMval someExternalApi = SomeExternalApi()
fun flowExample(): Flow<Int> = flow {
someExternalApi.addListener {
scope.launch {
emit(it)
}
}
}
flowExample().collect { println(it) }
val _events = MutableSharedFlow<Int>()
val events = _events.asSharedFlow()
val someExternalApi = SomeExternalApi()
someExternalApi.addListener {
scope.launch {
_events.emit(it)
}
}
events.collect { println(it) }
Or
val someExternalApi = SomeExternalApi()
fun flowExample(): Flow<Int> = callbackFlow {
val callback: (int: Int) -> Unit = {
offer(it)
}
someExternalApi.addListener(callback)
}
flowExample().collect { println(it) }
sharedFlow
seems incorrect since it's intended purpose is for broadcasting events that happen inside an application to subscribers that can come and go