[MUSIC] Welcome to the second module in our second MOOC on Android app components. After you complete the lessons in this module, you'll appreciate the need for Android services, which help to overcome limitations that occur from mixing activity life cycles and concurrent processing. You'll also understand how services run in the background, where they're used to perform long-running operations, and/or access remote resources. In addition, you'll know the most common types of Android services, including started services and bound services. Likewise, you'll recognized the apps that are used as case studies throughout this module, which includes a MusicPlayer app, as well as a PingPongReceiverService app. You'll know the general steps used to implement a service, as well as recognize the various states a service can be in during it's life cycle. You'll also understand service lifecycle operations, that are performed by hook methods, that are called back automatically by the Android Activity Manager service. You'll know how to integrate a service into an app, using the AndroidManifest.xml file. You'll also know why Android services require concurrency, to work around various Android design constraints related to blocking in the main thread of control for an extended period of time. Likewise, you'll understand how the IntentService framework can address these design constraints to simplify the programming of concurrent started services. You'll also be able to recognize Android service deployment and communication models, and understand the relationship to the various concurrency models supported by Android and Java. And finally, you'll know how the PingPongReceiverService app is designed and implemented. This is the end of the module 2 introduction. [MUSIC]