LiveData is a lifecycle-aware observable data holder. Key differences from regular observables:
Lifecycle awareness: Only notifies active observers
Automatic cleanup: Removes observers when lifecycle is destroyed
No memory leaks: Automatically handles observer lifecycle
Main thread delivery: Updates always delivered on main thread
class UserViewModel : ViewModel() {
private val _userName = MutableLiveData<String>()
val userName: LiveData<String> = _userName
// Observer only receives updates when in STARTED or RESUMED state
}
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.