Android面试关键知识点:Activity生命周期详解
需积分: 9 31 浏览量
更新于2024-09-11
收藏 323KB PDF 举报
"Android面试题和答案"
在Android开发领域,面试中经常涉及到关于Activity的基础知识,这包括了Activity的概念、生命周期以及在不同场景下的行为。以下是对这些知识点的详细解释:
1. 什么是Activity?
Activity是Android应用中的一个核心组件,它代表了用户界面的一个屏幕。在Android应用中,你可以有多个Activity,每个Activity都有自己的布局文件,通常存储在`res/layout`目录下。Activity是用户与应用交互的主要入口点,它可以包含各种视图组件,如按钮、文本框等。
2. Activity生命周期
- `onCreate(Bundle savedInstanceState)`:当Activity首次创建时调用,用于初始化UI和设置初始状态。`savedInstanceState`参数允许恢复之前保存的Activity状态。
- `onStart()`:Activity从不可见变到可见时调用,标志着Activity开始对用户可见。
- `onResume()`:用户可以与Activity交互时调用,此时Activity处于前台且具有焦点。
- `onPause()`:当Activity即将被另一个Activity覆盖或者用户离开时调用,通常用于保存临时状态。
- `onStop()`:当Activity完全不可见时调用,可能被销毁或者只是被其他Activity覆盖。
- `onRestart()`:如果Activity已停止但需要重新启动,会先调用此方法。
- `onDestroy()`:Activity将被彻底移除时调用,是Activity生命周期的最后阶段。
3. Activity之间的跳转
在两个Activity之间进行跳转时,必定会经历以下几个方法:
- `onPause()`:在跳转前,当前Activity会被暂停。
- `onSaveInstanceState(Bundle outState)`:如果需要保存UI状态,此方法会在`onPause()`之前调用。
- `onStop()`:当前Activity变得不可见时调用。
- `onDestroy()`:在某些情况下,当前Activity可能会被销毁。
- 对新启动的Activity:
- `onCreate(Bundle savedInstanceState)`:新Activity创建。
- `onStart()`:新Activity变得可见。
- `onResume()`:新Activity开始与用户交互。
4. 横竖屏切换时Activity的生命周期
如果不指定`android:configChanges`属性,横竖屏切换会导致Activity的完整生命周期重建,即`onCreate()`、`onStart()`、`onResume()`会被再次调用。为了避免不必要的重建,开发者可以在AndroidManifest.xml中为Activity添加`android:configChanges="orientation|screenSize"`,然后在Activity中重写`onConfigurationChanged(Configuration newConfig)`方法来处理配置变化。
理解并掌握Activity的这些基础知识对于Android开发者来说至关重要,因为它们直接影响到应用的性能、用户体验以及数据的正确保存和恢复。在面试中,深入理解Activity生命周期及其在不同场景下的表现,往往能体现开发者的专业程度。
110 浏览量
2020-02-23 上传
2022-07-14 上传
2021-09-15 上传
2024-01-25 上传
2015-01-11 上传
2013-10-04 上传
2015-11-04 上传
帅气的东哥
- 粉丝: 1212
- 资源: 224
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍