Книга: Beginning Android
Notify-on-Change Support
Notify-on-Change Support
An optional feature your content provider offers its clients is notify-on-change support. This means that your content provider will let clients know if the data for a given content Uri
changes.
For example, suppose you have created a content provider that retrieves RSS and Atom feeds from the Internet based on the user’s feed subscriptions (via OPML, perhaps). The content provider offers read-only access to the contents of the feeds, with an eye toward several applications on the phone using those feeds versus everyone implementing their own feed-poll-fetch-and-cache system. You have also implemented a service that will get updates to those feeds asynchronously, updating the underlying data store. Your content provider could alert applications using the feeds that such-and-so feed was updated, so applications using that specific feed could refresh and get the latest data.
On the content-provider side, to do this call notifyChange()
on your ContentResolver
instance (available in your content provider via getContext().getContentResolver()
). This takes two parameters: the Uri of the piece of content that changed, and the ContentObserver
that initiated the change. In many cases, the latter will be null
; a non-null
value simply means the observer that initiated the change will not be notified of its own changes.
On the content-consumer side, an activity can call registerContentObserver()
on its ContentResolver
(via getContentResolver()
). This ties a ContentObserver
instance to a supplied Uri — the observer will be notified whenever notifyChange()
is called for that specific Uri
. When the consumer is done with the Uri
, unregisterContentObserver()
releases the connection.
- CHAPTER 28 Building a Content Provider
- 3.7 Система Microsoft Exchange 2000 и NAS
- Shell Pattern-Matching Support
- Support for Wireless Networking in Fedora
- Avoiding Printer Support Problems
- Alternatives to Microsoft Exchange Server
- Microsoft Exchange Server
- Open Xchange
- Understanding the Changes Made by DHCP
- Commercial Support
- 6.4.3. Bootloader Support for initrd
- 14.2.2. Target Boot with KGDB Support