Uri event_uri = Uri.parse("content://com.android.calendar/" + "events");
What is uri here, what actually is content, as we can initialize int value to 0? Is it
possible to initialize a uri with a default value?
Uri reminder_uri = Uri.parse("content://com.android.calendar/" + "reminders");
What signifies these uri? What are the differences between
ContentValues values = new ContentValues();
What does the first one do?
ContentResolver cr = getContentResolver();
What is the use of the content resolver? Sometimes we write:
Uri u = cr.insert(event_uri, values)
What is this uri? How does it differ from the first two uris e.g
values.put("event_id", Long.parseLong(event.getLastPathSegment())); cr.insert(remindar_uri, values);
What does it do?
Regarding questions 1 and 2, A
Uri is an address that points to something of significance. In the case of
Uri is usually used to determine which table to use. So
event_uri points to the events table and the
reminder_uri points to the reminders table. There is really no "default value" for uris.
Regarding question 3, the
ContentValues is essentially a set of key-value pairs, where the key represents the column for the table and the value is the value to be inserted in that column. So in the case of
values.put("calendar_id", 1);, the column is "calendar_id" and the value being inserted for that column is 1.
Regarding question 4, the
ContentResolver is what android uses to resolve
ContentProviders. Anyone can create a
ContentProvider and Android has
ContentProviders for the Calendar, Contacts, etc.. The
insert() method on a
ContentResolver returns the
Uri of the inserted row. So in questions 1 and 2, those
Uris pointed to the table but
Uris are hierarchical so they can resolve to a specific row. For example:
content://com.android.calendar/events points to the events table, but
content://com.android.calendar/events/1 points to the row in the events table with id 1.
Keep in mind, that this is the usual behavior, but the providing
ContentProvider can customize the uris to be resolved differently.
In the previous lines of code, the full URI for the "words" table is:
user_dictionarystring is the provider's authority, and
wordsstring is the table's path. The string
content://(the scheme) is always present, and identifies this as a content URI.