Android面试必备:Activity生命周期详解与状态保存
4星 · 超过85%的资源 需积分: 9 157 浏览量
更新于2024-09-20
收藏 73KB DOC 举报
"这篇资源是关于Android面试题的全面整理,适合用来学习和复习Android开发的知识点。主要涵盖了Activity的生命周期、状态保存、Activity样式设置以及退出应用的方法等核心概念。"
1. Activity的生命周期是Android开发中的基础,它包括了以下几个主要方法:
- onCreate(): 当Activity首次创建时调用,用于初始化界面和数据。
- onStart(): 在Activity可见但不一定是焦点时调用,用户能看到Activity。
- onResume(): 当Activity成为用户交互的焦点时调用,此时Activity完全活跃。
- onFreeze(): 这个不是标准生命周期方法,可能是描述错误,通常应该是onPause()。
- onPause(): 当Activity即将被另一个Activity覆盖或用户离开时调用,适合保存轻量级数据。
- onStop(): 当Activity完全不可见时调用,资源释放的好时机。
- onRestart(): 如果Activity被暂停后重新回到前台,会先调用此方法。
- onDestroy(): 当Activity将被销毁时调用,是清理资源的最后机会。
提到的几种情况:
- (1)从父Activity启动子Activity,子Activity退出,父Activity会经历onPause() -> onStop() -> onRestart() -> onStart() -> onResume()。
- (2)用户按下Home键,Activity会经历onPause() -> onStop(),可能调用onDestroy()。
- (3)调用finish(),Activity会经历onPause() -> onStop() -> onDestroy()。
- (4)显示Dialog不会改变Activity的生命周期。
- (5)显示透明或非全屏Activity,主Activity会经历onPause()。
- (6)设备进入睡眠,Activity会经历onPause()。
2. 当后台的Activity可能被系统回收时,为了保存当前状态,应该重写onSaveInstanceState(Bundle outState)方法。在这个方法中,开发者可以将需要保存的数据放入Bundle,当Activity恢复时,可以通过onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle savedInstanceState)来恢复这些数据。
3. 要将一个Activity设置为窗口样式,可以在AndroidManifest.xml中对应的Activity标签内设置主题:
- 使用`android:theme="@android:style/Theme.Dialog"`可以让Activity看起来像一个对话框。
- 使用`android:theme="@android:style/Theme.Translucent"`则可以使Activity具有半透明效果。
4. 退出应用通常有两种方式:
- 通过连续两次按下Back键,大多数Android应用默认实现这一行为。
- 或者在需要的地方调用`finish()`方法关闭当前Activity,如果这是应用的最后一个Activity,应用将随之退出。但一般不推荐手动管理应用的退出,因为Android系统会自动管理Activity栈。
以上知识点是Android开发面试中常见的问题,理解并掌握它们对于开发者来说至关重要。通过学习和实践,可以提升在Android开发中的专业素养和面试竞争力。
2021-09-17 上传
2023-02-22 上传
2023-06-22 上传
2023-09-01 上传
2023-02-21 上传
2023-10-20 上传
2023-07-29 上传
2023-05-31 上传
2023-05-26 上传
zy860
- 粉丝: 0
- 资源: 3
最新资源
- 达梦数据库DM8手册大全:安装、管理与优化指南
- Python Matplotlib库文件发布:适用于macOS的最新版本
- QPixmap小demo教程:图片处理功能实现
- YOLOv8与深度学习在玉米叶病识别中的应用笔记
- 扫码购物商城小程序源码设计与应用
- 划词小窗搜索插件:个性化搜索引擎与快速启动
- C#语言结合OpenVINO实现YOLO模型部署及同步推理
- AutoTorch最新包文件下载指南
- 小程序源码‘有调’功能实现与设计课程作品解析
- Redis 7.2.3离线安装包快速指南
- AutoTorch-0.0.2b版本安装教程与文件概述
- 蚁群算法在MATLAB上的实现与应用
- Quicker Connector: 浏览器自动化插件升级指南
- 京东白条小程序源码解析与实践
- JAVA公交搜索系统:前端到后端的完整解决方案
- C语言实现50行代码爱心电子相册教程