Whenever you're ready, walk me through how you'd approach this.
Tell me about what an Activity is in Android and how it fits into an app's lifecycle. Explain the purpose of the main lifecycle callbacks, what happens when an Activity moves to the background or is recreated, and where screen state should be retained. Keep the answer focused on Android applications written in Kotlin, using the standard Activity lifecycle rather than Jetpack Compose-specific APIs.