LiveData

What is LiveData?

LiveData is an observable data holder class. It is also lifecycle-aware, which means that it respects the lifecycle of the other app components, such as activities, fragments and services. It notifies only active observers, represented by the Observer class. Using LiveData has a lot of benefits, some of which are:
  • Ensures the UI matches the data state
  • One of the greatest things about using the reactive approach is that you don’t need to update the UI every time the data changes. Instead, the active observers are notified for data changes and they update the UI. This saves a lot of manual updates and time developing an application.
  • Up to date data
  • If an activity goes in the background and then comes back to the screen, its observers are notified if there are changes in the data. This way the observers update the UI of the activity with the newest data available.
  • No memory leaks
  • Observers are bound to specific lifecycle objects and clean up themselves after the lifecycle is destroyed.
  • No crashes due to stopped activities
  • If an activity is inactive, then the observers in the activity don’t receive LiveData events because LiveData respects the lifecycle of the app components.

LiveData works great in combination with the other Architecture Components. In the next chapters we will see examples of writing SQL queries which return LiveData objects and examples of using LiveData in ViewModel and Repository.