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

需积分: 9 2 下载量 145 浏览量 更新于2024-09-10 收藏 323KB PDF 举报
"这篇资料主要涉及的是Android面试的相关问题,特别是关于Android应用开发中的Activity管理和生命周期的知识点。" 在Android应用开发中,Activity是构成应用程序的主要组件,它代表用户可以看到和交互的一个屏幕。Activity通常由XML布局文件定义,存储在res/layout目录下,创建后需在AndroidManifest.xml文件中进行注册,以便系统能够识别和管理。 Activity的生命周期是开发者必须掌握的核心概念,它涉及到以下关键方法: 1. onCreate(Bundle savedInstanceState): 当Activity首次创建时调用,用于初始化界面和设置基本属性。savedInstanceState参数允许恢复之前保存的状态。 2. onStart(): Activity变得对用户可见时调用,此时用户可以开始看到Activity,但可能还不透明。 3. onResume(): Activity开始与用户交互时调用,至此Activity完全可见并准备接收用户输入。 4. onPause(): 当Activity失去焦点,即将被暂停或覆盖时调用,适合保存当前状态和做必要的清理工作。 5. onStop(): Activity完全不可见时调用,一般在用户离开Activity或有新的Activity覆盖时发生。 6. onRestart(): 如果Activity被暂停后重新启动,会先调用此方法。 7. onDestroy(): Activity即将从系统内存中彻底移除时调用,是Activity生命周期的最后阶段。 在两个Activity之间的跳转过程中,以下方法必然会被调用: - onCreate(): Activity生命周期开始时调用。 - onRestoreInstanceState(Bundle savedInstanceState): 恢复先前保存的UI状态。 - onRestart(): 当Activity被重新启动时调用。 - onStart(): Activity将要对用户可见时调用。 - onResume(): Activity开始与用户交互,绘制界面。 - onSaveInstanceState(Bundle outState): 在Activity即将移出栈顶并需要保留UI状态时调用。 - onPause(): 暂停当前Activity,用于保存数据和停止资源消耗的操作。 - onStop(): 当Activity不再可见时调用。 - onDestroy(): Activity销毁前的最后一个方法。 关于横竖屏切换时Activity的生命周期,如果没有在AndroidManifest.xml中设置`android:configChanges`属性,系统默认会销毁并重建Activity,因此会依次经历onDestroy() -> onCreate() -> onStart() -> onResume()的过程。如果设置了`android:configChanges`来处理屏幕方向变化,那么Activity只会调用onConfigurationChanged()方法,而不会完全重建。了解这一行为对于优化性能和处理配置变更非常重要。