ContentProvider
Represents a repository of structured data
- Is better than SQLite DB, because you can share data across multiple applications
- Encapsulates data sets
- The access is through ContentResolver
URI
ContentProviders referenced by URIs
- Format: CONTENT://AUTHORITY/PATH/ID
- Content - Schee indicating data that is managed by content provider
- Authority - Id for the content provider
- Path - 0 or more segments indicating the type of data to be accessed
- Id - Specific record
- Example
- ContactsContract.Contacts.CONTENT_URI = "content://com.android.contects/contacts/"
- Retrive in this case all the table because is missing the id
ContentResolver
- Presents a DB-style interface for read and wite data
- Provide service as Change notification
- Get a reference to ContentResolver
- Context.getContentResolver()
Types
- Brower - Bookmarks, history
- Call log - Telephone usage
- Contacts
- Media - Gallery image
- UserDictionary - predictive spelling
Methods
- ContentResolver.Query
- Cursosr query(
- Uri uri - ContentProvider Uri
- String[] projection - Columns to retrieve
- String selection - SQL selection pattern
- String[] selectionArgs - SQL pattern args
- String sortOrder - Sort order
- )
- Returns a cursos for interating over the set of results
- ContentResolver.delete(
- Uri uri, - ContentProvider Uri
- String where, - SQL selection pattern
- String[] selectArgs - SQL pattern args
- )
- Returns the number of rows deleted
- ContentResolver.insert(
- Uri uri, - ContentProvider Uri
- ContentValues
- )
- Returns the URI of the inserted row
- ContentResolver.update(
- Uri uri, - ContentProvider Uri
- ContentValues
- String where, - SQL selection pattern
- String[] selectArgs - SQL pattern args
- )
- Returns the number of rows updated
CursorLoader
Use AsyncTask to perform queries on a background thread
How to use
- Implement LoaderManager's LoaderCallbacks interface
- Create and Initialize a cursor loader with initLoader()
- Loader<D> initLoader( int id, Bundle args, LoaderCallbacks<D> callback)
- Then call method onCreateLoader()
- LoaderCallbacks
- First callback instantiate and return a new loader for the specified id
- Last call the method onLoadFinished
- To reset a loader use
- onLoaderReset(...)
Comentarios
Publicar un comentario