---
title: "Discussion on \"One Snackbar, Three Streams: Choosing Between StateFlow, SharedFlow, and Channel\" | Hashnode"
description: "Discussion on \"One Snackbar, Three Streams: Choosing Between StateFlow, SharedFlow, and Channel\". Why your snackbar fires twice after rotation, and how to choose the right stream for UI state, one-shot events, event buses, and queues."
url: "https://hashnode.com/posts/one-snackbar-three-streams-choosing-between-stateflow-sharedflow-and-channel/6af4a6ede4032a425a9a4c29"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [One Snackbar, Three Streams: Choosing Between StateFlow, SharedFlow, and Channel](https://android-expert.hashnode.dev/one-snackbar-three-streams-choosing-between-stateflow-sharedflow-and-channel?utm_source=hashnode&utm_medium=feed)

Why your snackbar fires twice after rotation, and how to choose the right stream for UI state, one-shot events, event buses, and queues.

3d ago · 16 min read · android-expert.hashnode.dev  
Read the article

-   [#kotlin](https://hashnode.com/tag/kotlin)
-   [#coroutines](https://hashnode.com/tag/coroutines)
-   [#kotlincoroutines](https://hashnode.com/tag/kotlincoroutines)
-   [#kotlinflow](https://hashnode.com/tag/kotlinflow)

## Written by

[Android Expert](https://hashnode.com/@android-expert)

@android-expert · Chennai, India

  
[View profile](https://hashnode.com/@android-expert)

Android Expert· Kotlin, Jetpack Compose & production pitfalls

Android Engineer &amp; Kotlin Advocate. 🚀 Deep dives into Jetpack Compose, Coroutines, and Clean Architecture. Turning complex code into scalable solutions. 🛠️✨

## Responses

Markdown supported · ⌘↵ to post

No responses yet.
