广播接收器和内容提供器是 Android 的四个核心组件中的两个。广播接收器响应系统/应用范围的事件,而内容提供器在应用之间共享数据。两者都使应用能够与系统和其他应用交互。
广播接收器 — 响应事件
A BROADCAST RECEIVER responds to broadcast messages (events) from the system or apps:
→ system events: battery low, connectivity changed, boot completed, airplane mode, etc.
→ app events: custom broadcasts within or between apps
→ register to LISTEN for specific broadcasts and react when they occur
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == Intent.ACTION_BATTERY_LOW) { /* react to low battery */ }
}
}
// register in the manifest (some) or dynamically in code (context.registerReceiver)
⚠️ Modern Android RESTRICTS implicit broadcasts (manifest-registered) for battery/perf →
many must be registered at runtime or use other mechanisms (WorkManager, etc.)
内容提供器 — 在应用之间共享数据
A CONTENT PROVIDER manages access to a structured data set, enabling SHARING data
between apps via a standard interface (content:// URIs):
→ e.g. the Contacts provider, MediaStore (photos/videos), Calendar — system providers
other apps query through Content Providers
→ your app can expose its data to other apps via a Content Provider (with permissions)
→ query via a ContentResolver (like querying a database with a URI)
→ The standard way to SHARE structured data across app boundaries.
为什么这很重要
理解广播接收器和内容提供器是有价值的,因为它们是 Android 四个核心组件中的两个,使应用能够响应事件和共享数据,因此对于理解 Android 的组件模型是有用的基础知识。广播接收器让应用能够响应系统和应用范围的事件(电池电量低、连接状态变化、系统启动完成、自定义应用事件)— 使应用能够对系统或其他应用中的重要事件做出反应,这是事件驱动行为的有用功能。
理解它们以及重要的现代注意事项,即 Android 限制隐式广播(清单注册的广播,出于电池/性能原因,需要运行时注册或替代机制),反映了当前正确的使用方式。内容提供器提供了在应用之间共享结构化数据的标准方式 — 系统提供器(Contacts、用于照片/视频的 MediaStore、Calendar),应用通过标准 content:// URI 接口查询,以及你的应用向其他应用公开数据的能力。
理解内容提供器对于访问共享系统数据(如查询联系人或媒体)和进行应用间数据共享很重要 — 这是 Android 用标准接口和权限跨越应用边界的独特功能。
理解这两个组件完善了 Android 四个核心组件(与 Activities 和 Services 并行)的全貌,以及应用如何与系统和彼此交互(响应事件、共享数据)。
虽然并非每个应用都使用这两个组件,但对于响应系统事件或访问/共享应用边界间数据的应用来说都很重要。
由于广播接收器和内容提供器是 Android 四个基础组件中的两个(支持事件响应和应用间数据共享),理解它们完善了组件模型并启用了重要功能(响应系统事件、访问共享数据如联系人/媒体),所以理解广播接收器和内容提供器是有价值的、基础的 Android 知识 — 是理解 Android 完整组件模型的一部分,对于与系统事件和共享数据交互的应用很有用,其中对广播的现代限制是重要的实践背景。
