Live Data
LiveData is an abstract class describing a data holder class that is observed within a lifetime.
The data object will notify its Observer in the following scenarios:
When the observation starts: LiveData.observe.
When the Observer moves from not observing to observing.
When the value changes: LiveData.getValue.
The Observer will be automatically removed upon termination of the LifecycleOwner.
LiveData instances are not thread-safe and assume that all interaction occurs on a single thread.