I've watched many of the Google IO talks and one that I'm trying to reproduce is "Developing Android REST client applications"[1]. In this talk Virgil suggests you should not execute your RESTful queries inside a Thread/AsyncTask spawned from your Activity (which I had been doing), instead you should use a more complex architecture that uses a combination of a ContentProvider and a Service.
>From what I understood the reason for this design was so your data was more persistent between app restarts, and so your queries don't disappear if your Activity starts/stops (e.g on a screen rotation). I buy into both those reasons hence I'm trying to implement this. On the slides[2] page 45 We have an Activity calling a ContentProvider. Now the ContentProvider checks its local database, if the content is not there it sends an Intent to a service which fetches the content, inserts it into the ContentProvider, then the ContentProvider calls back to the Activity (with a ContentObserver) and the Activity can carry on. The question I have is how is this callback setup. The ContentProvider exposes simple methods, query, insert, update, delete which don't seem easy to adapt to a callback interface. It could be implemented by a Cursor which is designed to block, but that could be problematic as you don't' want to block your UI Thread. I'd appreciate if anyone could make this clearer to me, or show me some code. I'm hoping the Twitter app will be open sourced soon which apparently uses this architecture. thanks Andrew [1] http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html [2] http://dl.google.com/googleio/2010/android-developing-RESTful-android-apps.pdf -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en