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

需积分: 0 0 下载量 173 浏览量 更新于2024-07-29 收藏 137KB DOC 举报
Android面试整理中,Activity是Android应用程序的核心组件,它代表了应用程序中的一个单独的界面或视图。通常,我们将其视为用户与应用交互的主要区域,类似于Windows中的窗口或者iOS中的ViewController。在XML布局文件(res/layout)中定义,每个Activity都需要在AndroidManifest.xml配置文件中声明以便系统管理。 Activity的生命周期管理对于理解应用性能优化和用户体验至关重要。以下是一些关键生命周期方法: 1. **onCreate(Bundle savedInstanceState)**: 当Activity首次创建时,会调用此方法。这是初始化过程的起点,开发者可以在其中进行数据绑定、网络请求等操作。如果Activity之前已存在,并且有保存的状态数据,可以通过`savedInstanceState` Bundle获取这些信息。 2. **onStart()**: 当Activity变为可见并且用户能够交互时,系统会调用onStart()。此时,即使屏幕并未完全显示,但Activity已经具备了响应能力。 3. **onResume()**: 这是最重要的生命周期方法,当Activity成为焦点并开始接收输入事件时调用。无论是因为初始启动还是由其他Activity切换回来,都会触发onResume()。 4. **onPause()**: 当Activity失去焦点,例如切换到另一个App或设备处于睡眠状态时,系统会调用onPause()。这时应该保存数据和资源,因为它可能很快就会被回收。 5. **onStop()**: 当Activity不再可见,但仍然在任务堆栈中时,系统会调用onStop()。这是一个过渡状态,通常不涉及界面更新。 6. **onRestart()**: 如果之前暂停的Activity被恢复显示,会先调用onRestart(),然后onStart()和onResume()。这表明活动并未真正关闭,只是回到原来的状态。 7. **onDestroy()**: Activity即将被系统从内存中完全清除时调用,这意味着它将永远不会再复现。这是活动生命周期的终点,应在此时释放所有非持久性资源。 当两个Activity之间进行切换时,通常会经历以下方法: - onCreate():新Activity创建时调用,用于初始化。 - onRestoreInstanceState():用于恢复前一个Activity的状态。 - onRestart()或onStart():如果新Activity是旧Activity的恢复,调用这两个方法。 - onResume():新Activity变为活跃,开始绘制界面。 - onSaveInstanceState():保存状态,因为下一个Activity可能接管显示。 - onPause():旧Activity暂停,处理数据保存和资源清理。 - onStop():旧Activity停止,但未销毁。 - onDestroy():旧Activity完全销毁。 在横竖屏切换时,Activity的生命周期可能会有所不同,系统会根据设备方向调整,但主要关注的生命周期方法依然会在合适的时机被调用,如onConfigurationChanged()用于处理屏幕方向变化时的相应配置变更。理解Activity生命周期有助于开发者编写更流畅、适应性强的Android应用。