Content loaders provide you with a mechanism to load data from a content provider or other data source for display in a UI component, such as Activity or Fragment. These are the benefits that loaders provide:
- Running on a separate thread
- Simplifying thread management by providing callback methods
- Loaders persist and cache results across configuration changes, which prevents duplicated queries
- We can implement and be observers to monitor changes in the data
We will create our content loader implementation. First, we need to update the Adapter
class. Since we will deal with cursors, we will use a CursorAdapte
r instead of BaseAdapter
. CursorAdapter
accepts a Cursor
instance as a parameter in the primary constructor. The CursorAdapter
implementation is much simpler than the one we have right now. Open EntryAdapter
and update it as follows:
class EntryAdapter(ctx: Context, crsr: Cursor) : CursorAdapter(ctx, crsr) { override fun newView(p0: Context?, p1: Cursor?, p2: ViewGroup...