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

需积分: 9 2 下载量 187 浏览量 更新于2024-09-15 收藏 323KB PDF 举报
"Android面试题和答案" Android是一个广泛使用的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。面试中,对于Android开发者来说,理解Activity和其生命周期是至关重要的。以下是对这些概念的详细解释: Activity是Android应用程序中的基本构建块,它代表用户界面上的一个屏幕。一个应用可能包含多个Activity,每个Activity都有自己的布局和功能。布局通常通过XML文件定义,存放在项目的`res/layout`目录下。为了使Activity能够在应用中运行,需要在`AndroidManifest.xml`文件中对其进行注册。 Activity的生命周期分为几个关键阶段,包括: 1. `onCreate(Bundle savedInstanceState)`:这是Activity生命周期的第一个方法,当Activity首次创建时调用。在此阶段,应用应完成初始化工作,例如设置视图、绑定事件监听器等。`savedInstanceState`参数用于在配置更改时恢复之前的状态。 2. `onStart()`:当Activity变得对用户可见但不一定是焦点时调用。从这里开始,用户可以看到Activity,但可能被其他Activity遮挡。 3. `onResume()`:Activity进入前台并与用户开始交互时调用。这是用户界面活跃且可接收输入的阶段。 4. `onPause()`:当Activity失去焦点,即将被另一个Activity覆盖时调用。应用应在这里保存数据,因为用户可能会离开此Activity。 5. `onStop()`:当Activity完全不可见时调用,如新Activity启动或系统需要回收资源时。在此阶段,大部分视图和数据应被保存。 6. `onRestart()`:如果已停止的Activity重新启动,会先调用此方法,然后是`onStart()`。 7. `onDestroy()`:Activity即将从系统中彻底移除时调用,这是生命周期的最后一步。 在两个Activity之间进行跳转时,必然涉及的方法有: - `onCreate()`:新Activity创建时调用。 - `onStart()`:新Activity变为对用户可见时调用。 - `onResume()`:新Activity开始与用户交互时调用。 - `onPause()`:前一个Activity被暂停,为新Activity的启动做准备。 - `onStop()`:前一个Activity不再可见时调用。 横竖屏切换时,Activity的生命周期取决于在`AndroidManifest.xml`中如何处理配置变化。如果不设置`android:configChanges`属性,系统默认会销毁并重建Activity,依次调用`onPause()`、`onStop()`、`onDestroy()`,然后在新方向上创建Activity时调用`onCreate()`、`onStart()`和`onResume()`。如果设置了`android:configChanges="orientation"`,Activity将不被销毁,而是直接调用`onConfigurationChanged()`方法来处理配置更改。这样可以避免重建Activity导致的数据丢失和性能开销。但需要注意的是,处理所有配置变化的责任将落在应用本身。