Android面试关键:Activity生命周期详解

需积分: 10 0 下载量 84 浏览量 更新于2024-09-13 收藏 320KB PDF 举报
"这篇资料是关于Android面试题和答案,主要涵盖了Android开发中常见的问题,旨在帮助面试者准备面试。" 在Android应用开发中,Activity是应用程序的核心组件之一,它代表了用户可以看到和交互的单个屏幕。Activity的界面通常通过XML布局文件定义,存储在res/layout目录下。在创建一个新的Activity后,需要在AndroidManifest.xml文件中进行注册,以便系统知道如何管理和启动它。 Activity的生命周期是面试中经常被问到的一个关键点。它的生命周期包括以下几个主要方法: 1. onCreate(Bundle savedInstanceState):当Activity首次创建时调用,用于初始化界面和数据。Bundle参数可以用来恢复之前保存的Activity状态。 2. onStart():Activity从不可见变为可见时调用,此时用户开始能够看到Activity。 3. onResume():Activity进入前台并与用户开始交互时调用,此状态下Activity处于运行状态。 4. onPause():当Activity失去焦点但仍然部分可见(例如,弹出对话框)时调用,可以在此处保存一些数据,因为系统可能会很快调用onStop()。 5. onStop():Activity完全不可见,不再占用用户视线时调用,通常在Activity被销毁或另一个Activity覆盖时发生。 6. onRestart():如果Activity已经停止,但在栈中并未移除,当用户返回到该Activity时调用。 7. onDestroy():Activity将从系统中彻底移除时调用,这是Activity生命周期中的最后一个方法。 在两个Activity之间进行跳转时,以下方法会被调用: 1. onCreate():新Activity创建时调用。 2. onRestoreInstanceState(Bundle savedInstanceState):如果之前保存过状态,此方法用于恢复UI的状态。 3. onRestart():当已存在的Activity重新启动时调用。 4. onStart():Activity即将对用户可见时调用。 5. onResume():Activity开始与用户交互,绘制界面。 6. onSaveInstanceState(Bundle outState):在Activity即将被移出栈顶,需要保存UI状态时调用。 7. onPause():在Activity暂停前调用,用于保存数据和停止耗时操作。 8. onStop():Activity不再可见时调用。 9. onDestroy():在Activity销毁前调用。 关于横竖屏切换时Activity的生命周期,如果在AndroidManifest.xml中未指定`android:configChanges`属性,系统默认会销毁当前Activity并重建,调用onCreate()和onDestroy()。如果指定了`android:configChanges="orientation"`,则系统会在屏幕方向变化时调用onConfigurationChanged()方法,而不是销毁Activity,这样可以避免数据丢失和性能消耗。不过,处理配置更改通常是开发者的责任,需要在onConfigurationChanged()中更新界面布局以适应新的屏幕方向。