Android面试必备:Activity生命周期详解
需积分: 9 71 浏览量
更新于2024-09-11
收藏 323KB PDF 举报
"Android面试题与解答"
在Android开发领域,面试常常会涉及到对核心概念的理解,比如Activity。Activity是Android应用中的一个关键组件,代表用户界面。它可以在XML布局文件中定义,通常位于`res/layout`目录下。每个新创建的Activity都需要在`AndroidManifest.xml`中注册,以便系统能够识别和管理。
Activity的生命周期是面试中常问的问题,因为它直接关系到应用的性能和用户体验。生命周期主要包括以下方法:
1. `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用,用于初始化视图和设置初始状态。`savedInstanceState`参数用于在配置更改(如屏幕旋转)时恢复Activity的状态。
2. `onStart()`:Activity从不可见变为可见时调用,意味着用户现在可以看到Activity了。
3. `onResume()`:Activity开始与用户交互时调用,此时Activity处于前台且完全可见,准备接收用户输入。
4. `onPause()`:当Activity失去焦点,但仍然部分可见(例如,另一个Activity半透明覆盖其上)时调用。在此方法中,应用应快速保存数据,因为下一个Activity不会在它返回之前恢复。
5. `onStop()`:Activity完全不可见时调用,可能是被新的Activity替换或者应用被后台化。在这里,应该释放资源,如停止动画或定时器。
6. `onRestart()`:当Activity被重新启动(从停止状态回到可见状态)时调用,通常在用户返回Activity时发生。
7. `onResume()`:在`onRestart()`之后,再次调用,表明Activity重新与用户交互。
8. `onDestroy()`:Activity即将从内存中移除时调用,是Activity生命周期的最后一步。
在Activity之间的跳转过程中,会触发特定的生命周期方法。典型的情况包括:
- `onCreate()`:新Activity创建时。
- `onRestoreInstanceState()`:恢复之前保存的UI状态。
- `onRestart()`:如果Activity被暂停后重启。
- `onStart()`:Activity变得对用户可见。
- `onResume()`:Activity进入前台并与用户交互。
- `onSaveInstanceState()`:在Activity将要被隐藏时,用于保存临时UI状态。
- `onPause()`:Activity失去焦点,准备进行其他操作。
- `onStop()`:Activity完全不可见。
- `onDestroy()`:Activity将要销毁前调用。
横竖屏切换时,如果不设置`android:configChanges`属性,系统默认会销毁并重建Activity,从而调用完整的生命周期。若设置`android:configChanges="orientation|screenSize"`,Activity会在配置变化时仅调用`onConfigurationChanged()`,而不会销毁,这样可以避免数据丢失和额外的资源消耗。
理解并熟练掌握这些Activity生命周期的概念和方法对于Android开发者来说至关重要,因为它直接影响应用的性能和用户体验。在面试中,能够详细解释这些概念并给出实际应用场景的例子,将有助于展示你的专业技能和经验。
110 浏览量
2020-02-23 上传
2022-07-14 上传
2021-09-15 上传
2024-01-25 上传
2015-01-11 上传
2013-10-04 上传
2015-11-04 上传
菜鸟的封装史
- 粉丝: 31
- 资源: 30
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程