Chat app vs REST app - use a thread in an Activity or a thread in a Service?

Posted by synic on Stack Overflow See other posts from Stack Overflow or by synic
Published on 2010-06-12T14:57:41Z Indexed on 2010/06/12 15:02 UTC
Read the original article Hit count: 159

Filed under:

In Virgil Dobjanschi's talk, "Developing Android REST client applications" (link here), he said a few things that took me by surprise. Including:

  • Don't run http queries in threads spawned by your activities. Instead, communicate with a service to do them, and store the information in a ContentProvider. Use a ContentObserver to be notified of changes.

  • Always perform long running tasks in a Service, never in your Activity.

  • Stop your Service when you're done with it.

I understand that he was talking about a REST API, but I'm trying to make it fit with some other ideas I've had for apps. One of APIs I've been using uses long-polling for their chat interface. There is a loop http queries, most of which will time out.

This means that, as long as the app hasn't been killed by the OS, or the user hasn't specifically turned off the chat feature, I'll never be done with the Service, and it will stay open forever. This seems less than optimal.

Long question short:

For a chat application that uses long polling to simulate push and immediate response, is it still best practice to use a Service to perform the HTTP queries, and store the information in a ContentProvider?

© Stack Overflow or respective owner

Related posts about android