I'm writing a content provider that returns data about game sessions.
This data comes from an SQLite table. However, the client that
consumes it will also want summary data: total wins, current/best
winning streak, and so on. I'm not sure which approach to use.

* Possible Approach 1: Do nothing, let the client calculate what it
needs.

The client could step through the whole table and calculate statistics
itself. However, it's inefficient to send the entire database over the
content provider link if the client only wants the summaries; this may
also be prone to bugs because each client has to reimplement the
summary calculations.

* Possible Approach 2: Separate content URIs for summary data.

The client could ask for a URI like content://myapp/summary/totalwins
and get back a text/plain stream containing the number of wins. This
seems like a big hassle to implement on both ends, though. Or it could
ask for a URI like content://myapp/summary and get back an XML stream
containing all the summary data, but this isn't much simpler.

* Possible Approach 3: A phony table.

The client could ask for a URI like content://myapp/summary and get
back a cursor over a single row, with each summary value having its
own column. This would not be an SQLite cursor but a custom in-memory
cursor. It seems a little unnatural to use a table metaphor when
there's always exactly one row, though.

* Possible Approach 4: The extras bundle.

Cursor has a getExtras() method that returns a bundle. The client
could make a request for the main URI, content://myapp/sessions, and
then just look at the extras bundle instead of reading any rows.
However, there's no setExtras() method, so I'm stuck with whatever
bundle object SQLite puts in there - and if it's Bundle.EMPTY, I'm out
of luck.

What do you recommend?

Jesse
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to