Android面试必备:Activity生命周期详解

需积分: 9 1 下载量 61 浏览量 更新于2024-09-15 收藏 323KB PDF 举报
"这是一份详细的Android面试题和答案PDF,涵盖了关于Activity生命周期、Activity间跳转以及横竖屏切换时Activity的行为等核心知识点。" 在Android开发中,Activity是构成应用程序用户界面的基本单元,它负责展示用户可以看到和交互的屏幕。Activity的界面通常通过XML布局文件定义,并在`res/layout`目录下存储。每个新创建的Activity都需要在`AndroidManifest.xml`中注册,以便系统能够识别并管理它们。 Activity的生命周期是其行为的关键部分,包括以下几个主要方法: 1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用,用于初始化界面和应用状态。`savedInstanceState`参数是一个可选的Bundle,用于在Activity被系统销毁后恢复先前的状态。 2. `onStart()`:当Activity变得对用户可见时调用,但还没有与用户交互。 3. `onResume()`:Activity准备与用户交互时调用,此时Activity位于栈顶并完全可见。 4. `onPause()`:当Activity失去焦点但仍然可见(例如,一个新的透明Activity覆盖了它)时调用,用于保存状态和执行轻量级操作。 5. `onStop()`:当Activity完全不可见时调用,可能即将被销毁或被其他Activity覆盖。 6. `onRestart()`:如果Activity被暂停后重新启动,会先调用此方法。 7. `onDestroy()`:Activity从系统内存中彻底移除前的最后一次回调,意味着Activity将被彻底结束。 当两个Activity之间进行跳转时,涉及以下生命周期方法的调用顺序: 1. `onCreate()`:新Activity创建时。 2. `onRestoreInstanceState()`:如果之前保存过状态,此方法用于恢复UI状态。 3. `onRestart()`:如果Activity被暂停后重启。 4. `onStart()`:Activity即将对用户可见时。 5. `onResume()`:Activity与用户开始交互。 关于横竖屏切换时Activity的生命周期,有两种情况: 1. **不设置`android:configChanges`**:系统默认情况下,当设备屏幕方向改变时,Activity会完全重建,调用`onDestroy()`和`onCreate()`。这样会导致数据丢失,因为默认不保存状态。 2. **设置`android:configChanges="orientation|screenSize"`**:在`AndroidManifest.xml`中声明处理屏幕方向变化,Activity的生命周期不会重建,而是调用`onConfigurationChanged(Configuration newConfig)`方法,允许你在不丢失状态的情况下处理配置更改。 理解并掌握Activity的生命周期对于开发健壮且响应式的Android应用至关重要,因为它有助于优化性能,确保用户体验,并处理异常情况。此外,熟悉Activity间的跳转和横竖屏切换处理也是面试中常考的知识点。