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

需积分: 9 8 下载量 71 浏览量 更新于2024-09-11 收藏 323KB PDF 举报
"Android面试题与解答" 在Android开发领域,面试常常会涉及到对核心概念的理解,比如Activity。Activity是Android应用中的一个关键组件,代表用户界面。它可以在XML布局文件中定义,通常位于`res/layout`目录下。每个新创建的Activity都需要在`AndroidManifest.xml`中注册,以便系统能够识别和管理。 Activity的生命周期是面试中常问的问题,因为它直接关系到应用的性能和用户体验。生命周期主要包括以下方法: 1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用,用于初始化视图和设置初始状态。`savedInstanceState`参数用于在配置更改(如屏幕旋转)时恢复Activity的状态。 2. `onStart()`:Activity从不可见变为可见时调用,意味着用户现在可以看到Activity了。 3. `onResume()`:Activity开始与用户交互时调用,此时Activity处于前台且完全可见,准备接收用户输入。 4. `onPause()`:当Activity失去焦点,但仍然部分可见(例如,另一个Activity半透明覆盖其上)时调用。在此方法中,应用应快速保存数据,因为下一个Activity不会在它返回之前恢复。 5. `onStop()`:Activity完全不可见时调用,可能是被新的Activity替换或者应用被后台化。在这里,应该释放资源,如停止动画或定时器。 6. `onRestart()`:当Activity被重新启动(从停止状态回到可见状态)时调用,通常在用户返回Activity时发生。 7. `onResume()`:在`onRestart()`之后,再次调用,表明Activity重新与用户交互。 8. `onDestroy()`:Activity即将从内存中移除时调用,是Activity生命周期的最后一步。 在Activity之间的跳转过程中,会触发特定的生命周期方法。典型的情况包括: - `onCreate()`:新Activity创建时。 - `onRestoreInstanceState()`:恢复之前保存的UI状态。 - `onRestart()`:如果Activity被暂停后重启。 - `onStart()`:Activity变得对用户可见。 - `onResume()`:Activity进入前台并与用户交互。 - `onSaveInstanceState()`:在Activity将要被隐藏时,用于保存临时UI状态。 - `onPause()`:Activity失去焦点,准备进行其他操作。 - `onStop()`:Activity完全不可见。 - `onDestroy()`:Activity将要销毁前调用。 横竖屏切换时,如果不设置`android:configChanges`属性,系统默认会销毁并重建Activity,从而调用完整的生命周期。若设置`android:configChanges="orientation|screenSize"`,Activity会在配置变化时仅调用`onConfigurationChanged()`,而不会销毁,这样可以避免数据丢失和额外的资源消耗。 理解并熟练掌握这些Activity生命周期的概念和方法对于Android开发者来说至关重要,因为它直接影响应用的性能和用户体验。在面试中,能够详细解释这些概念并给出实际应用场景的例子,将有助于展示你的专业技能和经验。