Android面试精华:Activity生命周期与跳转解析

5星 · 超过95%的资源 需积分: 9 1 下载量 157 浏览量 更新于2024-09-11 收藏 323KB PDF 举报
在Android开发中,Activity是应用程序的核心组件,它代表了应用中的一个单独可显示用户界面的部分。一个Activity通常与一个XML布局文件相对应,定义了界面元素的布局结构,并在AndroidManifest.xml文件中进行注册。Activity有其完整的生命周期管理过程,包括以下几个关键方法: 1. **onCreate(Bundle savedInstanceState)**:这是Activity的初始化方法,当Activity被创建时,系统会调用此方法。在这里,你可以初始化控件、设置数据,以及利用savedInstanceState参数(如果有的话)恢复之前保存的状态。 2. **onStart()**:当Activity变为可见且用户能够与之交互时,会触发此方法。即使是从后台恢复过来,onStart也会被调用。 3. **onResume()**:这是最重要的生命周期回调,标志着Activity真正与用户进行交互,此时可以执行耗时的操作,因为它的执行是立即的,不像其他方法可能被系统中断。 4. **onPause()**:当Activity暂停或者需要回收资源(如设备旋转时)时,系统会调用此方法,开发者需要在此处保存状态以备后续恢复,这通常是保存临时数据或停止动画等操作。 5. **onStop()**:当Activity不再接收用户的输入并且变为不可见时,会进入此阶段。尽管它仍处于任务栈中,但资源消耗较低。 6. **onRestart()**:当先前的Activity因某种原因停止后重新启动时,会调用此方法,但不会销毁当前Activity实例。 7. **onDestroy()**:这是Activity的终止阶段,当系统决定释放Activity的所有资源,将其从内存中彻底清除时,会调用这个方法。在onDestroy之前,onSaveInstanceState可能会被调用,用于保存重要的数据以便将来恢复。 在处理横竖屏切换时,如果不设置`android:configChanges`属性,Activity的生命周期会发生以下变化: - 当屏幕方向改变而Activity被系统自动重新创建时,会经历`onCreate()`、`onSaveInstanceState()`、`onStart()`、`onResume()`的完整流程,以适应新的屏幕方向。 - 如果设置了相应的属性来处理屏幕方向变化,如`android:configChanges="orientation|screenSize"`,则Activity会在当前方向下继续运行,生命周期流程会跳过部分步骤,例如暂停和保存状态的部分将由系统内部处理。 理解Activity生命周期对于优化用户体验、合理保存和恢复状态至关重要,同时正确处理横竖屏切换也是确保应用稳定性和性能的关键环节。