Android面试精华:Activity详解与生命周期管理
需积分: 0 88 浏览量
更新于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应用。
2023-02-22 上传
2014-04-22 上传
2012-10-10 上传
2020-03-07 上传
2018-12-03 上传
2015-03-12 上传
2022-06-18 上传
2024-11-13 上传
wancanjun
- 粉丝: 1
- 资源: 266
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载