Android面试精华:Fragment交互与Activity生命周期详解
157 浏览量
更新于2024-07-15
收藏 189KB PDF 举报
在Android面试中,关于Activity和Fragment的知识点占据了重要的地位,因为它们是Android应用的核心组件。首先,我们来看一下Fragment与Activity的交互:
1. **Fragment之间的数据交互**:
- **通过Bundle传递参数**:Fragment之间可以通过Bundle对象来传递数据,这是一种常见的数据传递方式,尤其是在Activity启动或替换Fragment时,可以将数据封装在Bundle中,从一个Fragment传递到另一个Fragment。
2. **回调接口实现通信**:
- Fragment内部定义一个回调接口,例如`OnFragmentInteractionListener`,然后让宿主Activity实现这个接口。这样,当Activity需要向Fragment提供信息时,只需通过接口调用相应的方法,实现了Activity与Fragment之间的松耦合通信。
接下来,了解Activity的关键生命周期方法及其启动模式:
- **Activity生命周期方法**:
- `onCreate()`:首次创建Activity时调用,用于初始化Activity的基本设置,如加载布局、初始化控件和绑定事件。
- `onStart()`:Activity变为可见但可能还在后台运行时调用。
- `onResume()`:Activity准备接受用户交互时调用,通常位于返回栈顶部且活动状态为运行。
- `onPause()`:当系统准备切换到其他Activity时调用,但在对话框式Activity中,不会触发`onStop()`。
- `onStop()`:Activity完全不可见时调用,区别于`onPause`,不适用于对话框Activity。
- `onDestroy()`:Activity即将被销毁前调用,此时无法再接收用户输入。
- `onRestart()`:Activity从停止状态恢复到运行状态前调用,表示Activity被重新启动。
- **Activity启动模式**:
- **标准模式(Standard)**:每次启动都会创建新的实例。
- **栈顶复用模式(SingleTop)**:如果Activity已经存在,且处于栈顶,则复用现有实例,避免重复创建。
- **栈内复用模式(SingleTask)**:每个任务只有一个Activity实例,如果任务栈中包含该Activity,那么启动时复用,否则创建新实例。
- **单例模式(SingleInstance)**:确保在整个应用程序生命周期内,只有一个实例,常用于处理系统服务或有特殊需求的应用。
最后,Activity的启动流程涉及Context的`startActivity()`方法,通过Instrumentation跨进程调用AMS(Activity Manager Service)的`startActivity()`,在合法性的检查后,根据启动模式的不同,进行相应的操作。
掌握这些技术点能够帮助你在Android面试中展现出扎实的基础和对框架深入的理解。在实际开发中,理解并灵活运用这些概念对于构建高效、可维护的应用至关重要。
2018-06-19 上传
2016-08-23 上传
2013-08-24 上传
2017-05-03 上传
2019-04-17 上传
2012-07-08 上传
2015-09-25 上传
weixin_38556189
- 粉丝: 8
- 资源: 921
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录