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

需积分: 9 0 下载量 145 浏览量 更新于2024-09-17 收藏 323KB PDF 举报
"Android面试题和答案" 在Android开发中,Activity是应用程序的基本构建块,它代表用户可以看到和交互的单个屏幕。Activity通常包含布局,这些布局是通过XML文件在`res/layout`目录下定义的。每个Activity都需要在应用程序的主配置文件`AndroidManifest.xml`中注册,以便系统知道其存在并能够正确地启动和管理它。 Activity的生命周期是面试中常见的问题,因为它关乎到应用程序的正确运行和资源管理。以下是Activity的主要生命周期方法及其调用时机: 1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用。在这个方法中,开发者通常会进行初始化工作,如设置视图和绑定事件。`savedInstanceState`参数用于在设备旋转等配置变化时恢复Activity的状态。 2. `onStart()`:当Activity变得对用户可见时调用。从这一刻起,Activity开始进入用户视线。 3. `onResume()`:当Activity准备与用户进行交互时调用,这意味着Activity现在处于前台并且可以接收用户输入。这是Activity生命周期中的活动状态。 4. `onPause()`:当Activity失去焦点,但仍然部分可见(例如,新Activity打开或对话框弹出)时调用。此方法用于保存状态并释放一些资源,因为用户可能暂时无法与Activity交互。 5. `onStop()`:当Activity完全不可见时调用,例如,用户导航到另一个Activity。此时,Activity可能不再在内存中显示。 6. `onRestart()`:如果Activity之前被停止,然后再次启动,这个方法会被调用。这发生在`onStop()`之后,但在`onStart()`之前。 7. `onDestroy()`:当Activity将被系统彻底销毁时调用,可能是由于系统资源紧张或者用户手动结束应用。这是Activity生命周期的最后一步。 在两个Activity之间的跳转过程中,一定会调用的生命周期方法包括: - `onCreate()`:新Activity创建时。 - `onRestoreInstanceState()`:恢复之前保存的Activity状态。 - `onRestart()`:Activity被重新启动。 - `onStart()`:Activity变得对用户可见。 - `onResume()`:Activity开始与用户交互。 当设备从横屏切换到竖屏,或者反之,如果不指定Activity处理配置变化(通过`android:configChanges`),系统会默认销毁并重建Activity,从而调用`onDestroy()`,然后重新经历整个生命周期。如果在`AndroidManifest.xml`中指定了特定的配置变化,如`android:configChanges="orientation"`,那么Activity会通过`onConfigurationChanged()`方法处理变化,而不是被销毁和重建。这样可以避免状态丢失,但需要开发者手动处理配置更新。