四大组件知识体系概览
问题
Android 四大组件是什么?它们各自的职责和生命周期是怎样的?
答案
Android 四大组件(Activity、Service、BroadcastReceiver、ContentProvider)是构建 Android 应用的基石。每个组件都有独特的用途和生命周期,由系统统一管理。
四大组件全景
组件对比
| 组件 | 用途 | 有界面 | 生命周期 | 注册方式 |
|---|---|---|---|---|
| Activity | 提供用户交互界面 | ✅ | 复杂(7 个回调) | AndroidManifest |
| Service | 执行后台长时间任务 | ❌ | 简单(Started/Bound) | AndroidManifest |
| BroadcastReceiver | 响应系统/应用广播 | ❌ | 极短(onReceive) | 静态/动态 |
| ContentProvider | 跨进程数据共享 | ❌ | 随进程(onCreate) | AndroidManifest |
核心知识点
Activity
- 生命周期:
onCreate→onStart→onResume→onPause→onStop→onDestroy - 启动模式:standard、singleTop、singleTask、singleInstance
- 任务栈:Task 和 Back Stack 管理
- 状态保存:
onSaveInstanceState/onRestoreInstanceState - 转场动画:共享元素过渡、自定义过渡
Service
- Started Service:通过
startService()启动,独立运行 - Bound Service:通过
bindService()绑定,提供 C/S 接口 - 前台 Service:显示通知,提高优先级防止被杀
- IntentService:已废弃,推荐 WorkManager
- Android 12+ 限制:后台启动前台 Service 的限制
BroadcastReceiver
- 标准广播:异步,所有接收者几乎同时收到
- 有序广播:按优先级依次传递,可拦截
- 本地广播:
LocalBroadcastManager(已废弃)→ 推荐 Flow/LiveData - Android 8.0+ 限制:大部分隐式广播需要动态注册
ContentProvider
- URI 机制:
content://authority/path/id - CRUD 接口:
query、insert、update、delete - 跨进程:基于 Binder IPC,支持权限控制
- 常见应用:通讯录、媒体库、FileProvider
学习路径
面试重点
四大组件中 Activity 是绝对的面试重点,生命周期和启动模式几乎必考。Service 在 Android 高版本限制增多,面试更关注 WorkManager 替代方案。BroadcastReceiver 和 ContentProvider 考察频率较低,但了解其原理有助于理解 Android 系统架构。