Android面试精华:Activity详解与生命周期管理

需积分: 9 1 下载量 106 浏览量 更新于2024-09-16 收藏 323KB PDF 举报
Android面试题和答案汇总包含了面试官经常提问的技术点,其中核心知识点涉及Activity在Android应用程序中的作用、生命周期管理和Activity之间的跳转。让我们深入解析这些关键概念: 1. **Activity定义**: Activity在Android中扮演着界面容器的角色,它负责展示用户界面。每个Activity都有其独立的视图层次结构,这些布局通常由XML文件定义,位于res->layout目录下。为了在AndroidManifest.xml中注册新创建的Activity,开发者需要声明它们,以便系统能够正确管理。 2. **Activity 生命周期**: - `onCreate(Bundle savedInstanceState)`:Activity的生命周期开始,此方法用于初始化组件并可能根据之前的状态恢复数据。 - `onStart()`:当Activity成为可见并且用户可以交互时调用,即使是从其他Activity返回或者屏幕旋转后。 - `onResume()`:当Activity获得焦点并与用户交互时调用,无论启动还是重新进入。 - `onPause()`:当Activity失去焦点但仍然在内存中时,用于保存状态,确保性能优化。 - `onStop()`:Activity变为不可见但仍保持在任务栈中,当内存不足时可能会被销毁。 - `onRestart()`:当Activity从`stop`状态恢复到`start`状态时调用,与重新创建不同,它仍处于栈中。 - `onDestroy()`:Activity完全从系统内存中移除,通常不会再恢复,清理所有资源。 3. **Activity 跳转方法**: 在Activity之间跳转时,会经历一系列方法,包括`onCreate()`(初始化),`onRestoreInstanceState()`(恢复UI状态),`onRestart()`(重启),`onStart()`(准备显示),`onResume()`(用户交互),以及在离开栈前的保存状态(`onSaveInstanceState()`)和暂停操作(`onPause()`)。`onStop()`在屏幕旋转后调用,而`onDestroy()`则在Activity完全销毁前执行。 4. **处理横竖屏切换**: 如果在AndroidManifest.xml中未设置`android:configChanges="orientation|screenSize"`,Activity在横竖屏切换时,系统会自动管理这些变化,使得Activity无需重新创建。这意味着生命周期中的某些方法(如`onConfigurationChanged()`)会在屏幕方向改变时被调用,开发者需要在此处更新布局以适应新的屏幕方向。 掌握这些Android Activity生命周期管理和跳转的知识点,可以帮助面试者在实际项目开发和面试过程中展现出扎实的基础和实践经验。在面试中,候选人不仅要能流畅地解释这些概念,还要能提供实际代码示例来展示如何在项目中应用这些技术。