深入理解Android Activity与Intent机制

需积分: 9 1 下载量 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开发的基本功。通过理解这两个核心概念,开发者可以有效地构建和控制应用程序的行为,实现组件之间的顺畅通信。