In this chapter, you learned how to create a database, use a database contract, and a database open helper. We saw the pattern of the DAO and made basic operations with it. Additionally, we replaced the DAO with a content provider, explaining how the URI matcher works and accessing it through a content resolver.
This allowed us to use
CursorLoader with our own implementation of
CursorAdapter, which is compatible with
RecyclerView, to have a system where the UI is synchronized with the database. To finish the chapter, we saw how to use the popular feature, pull to refresh, to update the content on demand.
In the next chapter, we will take a look at how to add push notifications to our application as well as analytics services with an overview ...