Android面试宝典:Activity详解与生命周期

4星 · 超过85%的资源 需积分: 9 58 下载量 187 浏览量 更新于2024-09-20 收藏 323KB PDF 举报
Android经典面试题和答案宝典主要涵盖了Android开发中基础且关键的概念,包括Activity的定义和生命周期管理,以及Activity之间的跳转过程。首先,让我们深入了解Activity在Android应用中的角色。 **Activity定义与XML布局** Activity在Android中扮演着核心角色,它是应用程序中的单个用户界面模块。Activity可以理解为一个可视的屏幕或者场景,由XML布局文件定义其界面元素和结构,通常存储在`res/layout`目录下。创建新Activity时,要在`AndroidManifest.xml`文件中注册,以便系统能够识别和管理这些界面。 **Activity生命周期管理** Activity的生命周期分为多个阶段,它们在不同时间点触发以反映应用的状态变化: 1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建或从其他Activity通过Intent启动时调用。此方法是初始化阶段,可以设置初始状态并处理传递的参数。 2. `onStart()`:Activity变为可见且用户可能能与之交互时调用,但可能因后台任务而暂停。 3. `onResume()`:当Activity成为焦点并开始接收用户的输入时,这是活跃状态,确保UI更新和数据同步。 4. `onPause()`:Activity暂时失去焦点,可能由于切换到其他应用或屏幕旋转,这时保存状态以防数据丢失。 5. `onStop()`:Activity变为不可见但仍保留在任务栈中,仅接收系统级别的广播。 6. `onRestart()`:如果先前的Activity因某种原因结束并重新创建,会调用此方法,而不是启动全新的Activity实例。 7. `onDestroy()`:当Activity完全从内存中卸载,且不可能再恢复时,执行清理工作,如释放资源。 **Activity间跳转与生命周期方法** 当两个Activity进行切换时,涉及到一系列生命周期方法,如`onCreate()`, `onRestoreInstanceState()`, `onRestart()`, `onStart()`, `onResume()`, `onSaveInstanceState()`, 和 `onPause()`。`onSaveInstanceState()`用于保存当前状态,`onPause()`则用于清理资源并提交数据变更。在切换到新的Activity之前,`onPause()`方法会先执行,然后是`onStop()`,确保旧Activity的资源得到适当管理。 **横竖屏切换对Activity的影响** 在Android中,如果不设置`android:configChanges`属性,当设备屏幕方向发生变化时,Activity会经历完整的生命周期流程,包括暂停、保存状态、重启等。这可能会导致性能开销,因此开发者通常会选择在配置变化发生时重定向到一个处理新方向的新Activity,而不是让当前Activity旋转。 理解Activity的生命周期及其在Android应用中的作用至关重要,特别是对于面试者而言,掌握这些概念能展示对平台深层次的理解和实践经验。在实际项目中,正确处理Activity的生命周期可以帮助优化性能,提高用户体验。