2021 Update: This guidance is deprecated in favor of the official guidelines. A convenient way for a view (activity or fragment) to communicate with a ViewModel is to use LiveData observables. The view subscribes to changes in LiveData and reacts to them. This works well for data that is displayed in a screen continuously. However, some data should be consumed only once, like a Snackbar message, a