Android面试必备:Activity生命周期详解与横竖屏切换分析

需积分: 9 53 下载量 47 浏览量 更新于2024-09-16 2 收藏 323KB PDF 举报
"此资源是一份关于Android面试题和答案的文档,主要涵盖了Android中的Activity生命周期、屏幕旋转时Activity的变化情况等内容,适合面试准备和自学使用。" 在Android开发中,Activity是应用程序的主要组件,它代表用户界面上的一个独立视图。当我们谈论Activity的生命周期时,我们是指从创建到销毁的过程中,Activity经历的一系列状态变化。以下是Activity生命周期的主要方法: 1. `onCreate(Bundle savedInstanceState)`:这是Activity生命周期的第一个方法,当Activity首次创建时调用。在这里,通常会进行布局加载和初始化工作,`savedInstanceState`参数用于恢复之前保存的状态。 2. `onStart()`:Activity变得对用户可见时调用,但还未完全显示在屏幕上。 3. `onResume()`:Activity进入前台并与用户交互,此时用户可以与其进行操作。 4. `onPause()`:当Activity即将被另一个Activity覆盖或者用户焦点转移时调用,用于保存数据和释放资源,但Activity仍然可见。 5. `onStop()`:Activity完全不可见时调用,例如用户打开新的Activity或者设备屏幕熄灭。 6. `onRestart()`:如果Activity被暂停后重新启动,会先调用此方法,然后是`onStart()`。 7. `onDestroy()`:Activity将从系统中移除时调用,可能是用户关闭或系统因内存不足而销毁Activity。 当Activity横竖屏切换时,其生命周期的变化取决于`android:configChanges`属性的设置: 1. **不设置**:系统默认行为,Activity会被销毁并重新创建,执行完整的生命周期:`onPause()` -> `onStop()` -> `onDestroy()` -> `onCreate()` -> `onStart()` -> `onResume()`。横屏和竖屏切换各执行一次。 2. **设置为`orientation`**:Activity配置变化时,系统不会销毁Activity,而是调用`onConfigurationChanged()`方法,执行`onPause()` -> `onConfigurationChanged()` -> `onResume()`。横竖屏切换各执行一次。 3. **设置为`orientation|keyboardHidden`**:配置变化时,Activity不会被重建,只调用`onConfigurationChanged()`方法,不会经过`onDestroy()`等其他生命周期方法。 在两个Activity之间的跳转过程中,一定会被执行的方法包括: - `onCreate()`:新Activity创建时调用。 - `onStart()`:新Activity变得可见时调用。 - `onResume()`:新Activity与用户开始交互时调用。 - 对于前一个Activity,可能调用`onPause()`、`onStop()`、`onDestroy()`,具体取决于是否被系统回收或是否需要保存状态。 理解并熟练掌握Activity的生命周期和屏幕旋转时的行为对于编写健壮的Android应用至关重要,因为这有助于确保在不同场景下应用的正确运行和用户体验。在面试中,这些都是常见的考察点,同时也是开发者应具备的基础技能。