StateFlow
•
현재 상태와 새로운 상태를 소비자에게 보낸다.
•
값이 업데이트 된 경우에만 반환하고, 동일한 값은 반환하지 않는다.
•
값을 보내려면 value 값을 주면 된다.
•
초기 상태를 생성자에 전달해야 한다.
•
뷰가 STOPPED 상태가 되어도 LiveData와 달리 구독을 중지하지 않는다.
•
Hot Stream이다. 수집이 지속되는 동안 메모리에 남아 있다.
•
새 소비자에게 마지막 데이터를 발행한다.
SharedFlow
•
SharedFlow는 StateFlow보다 더 다양한 설정이 가능하다.
•
onBufferOverFlow : 버퍼가 가득 차면 어떻게 할지 설정
◦
SUSPEND : 잠이 들었다 깨어난다.
◦
DROP_OLDEST : 예전 데이터를 지운다.
◦
DROP_LASTEST : 새 데이터를 지운다.
•
replay : 새로운 소비자에게 기존의 데이터를 얼마나 발행할지
•
extraBufferCapacity : 추가 버퍼를 생상하여 발행한 데이터가 버퍼에 유지되도록 함