Developing Background Services and Asynchronous Code
What's in This Chapter?
- The life cycle of a service
- Getting it done with threads
- Using services and activities
- Working with the UI
- Communicating with notifications
- Setting alarms
- Cloud to Device Messaging (C2DM)
Unlike some other mobile operating systems, Android allows and even encourages the use of background processing using a variety of mechanisms to do things independently of a user interface. This allows applications to listen for broadcast intents from other applications or services, stay updated on location data, and even communicate over the Internet with other services, all without requiring the application's user interface to be running.
Separating the user interface from background processing is critical in creating efficient applications. There's no need to hold memory for a user interface when all your application is doing is polling a web service.
Android provides several mechanisms for processing in the background. Services don't even need to always be running. Android can wake up a service to do its processing in the background based on a scheduled time or interval, or when another thread or application broadcasts an intent in which the service is interested.
In this chapter you learn all about services and running code in the background, outside of the main application thread. You discover how to communicate updates from your background code to the user through notifications, as well as how to communicate ...