深入理解Android Activity与Intent机制
需积分: 9 8 浏览量
更新于2024-07-29
收藏 1.15MB DOC 举报
"Android_学习笔记"
在Android应用开发中,Activity和Intent是两个核心概念,它们构成了Android应用程序的基础架构和组件通信方式。
首先,我们来深入理解Activity。Activity是Android应用的基本单元,它是一个可视化的用户界面,用户可以通过它与应用进行交互。每个Activity都有一个独立的生命周期,这个生命周期由系统管理,包括了以下关键阶段:
1. onCreate(Bundle savedInstanceState):当Activity首次创建时调用,用于初始化界面和数据。savedInstanceState参数可以在设备旋转等配置改变时用来恢复Activity的状态。
2. onStart():Activity变得可见但不一定是焦点时调用,用户可以看见Activity,但可能被其他Activity遮挡。
3. onRestart():当Activity从停止状态重新变为可见状态时调用,通常在onStop()之后调用。
4. onResume():Activity获得焦点并且用户可以与之交互时调用,Activity完全可见。
5. onPause():Activity失去焦点但仍然部分可见时调用,如弹出对话框或另一个Activity启动。
6. onStop():Activity完全不可见时调用,用户无法看到Activity。
7. onDestroy():Activity即将被销毁时调用,可能是系统需要回收资源或用户手动结束应用。
在Manifest文件中,每个Activity都需要声明,设置其属性和intent-filter,以便系统能够正确地管理和启动这些Activity。
接下来,我们探讨Intent。Intent是Android中的一个关键概念,它用于启动Activity或Service,以及在它们之间传递数据。Intent主要包含三部分:
1. Action:描述要执行的操作,例如ACTION_VIEW,ACTION_CALL等。
2. Data:操作的数据,可以是URL、URI或者其他数据格式。
3. Categories:对Action的补充,用于更精确地匹配目标组件。
Intent的使用主要有两种形式:
1. 显式Intent:指定要启动的特定Activity或Service,通过类名明确指定目标。
2. 隐式Intent:只指定操作和数据,不指定具体组件,系统会根据intent-filter找到最适合处理该Intent的组件。
通过Context.startActivity()或Activity.startActivityForResult()可以启动一个新的Activity,而Context.startService()则用于启动一个服务。在Intent中添加额外数据,可以使用putExtra()方法,然后在接收端通过getExtras()获取。
Intent不仅仅用于应用程序间交互,也可以在同一个应用内的不同Activity或Service之间传递信息,增强了组件之间的解耦性,使得代码更加灵活和可复用。
总结来说,掌握Activity的生命周期管理和Intent的使用是Android开发的基本功。通过理解这两个核心概念,开发者可以有效地构建和控制应用程序的行为,实现组件之间的顺畅通信。
2021-06-02 上传
2022-09-20 上传
2023-06-28 上传
2023-05-26 上传
2023-06-01 上传
2023-05-27 上传
2023-05-15 上传
2023-06-01 上传
2023-05-30 上传
![](https://profile-avatar.csdnimg.cn/1f6039d3445a4ae2b030aca38cc5ac53_iyaochao.jpg!1)
iyaochao
- 粉丝: 3
- 资源: 35
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据