5月29日 22:54
Android四大组件分别是什么?各自承担什么职责?
Android四大组件是 Activity、Service、BroadcastReceiver、ContentProvider,它们是构成 Android 应用的基石,各自负责不同的职责边界。
Activity 负责用户界面的展示与交互,一个屏幕对应一个 Activity,通过 Intent 实现页面跳转和数据传递,生命周期由系统回调管理(onCreate → onResume → onPause → onDestroy)。
Service 在后台执行长时间运行的操作,不提供界面。分为 Started Service(startService 启动,与调用者无关)和 Bound Service(bindService 绑定,允许通信)。注意 Service 仍运行在主线程,耗时操作需开子线程。
BroadcastReceiver 监听并响应系统或应用发出的广播消息,如开机启动、网络变化、电量改变。分静态注册(AndroidManifest 声明,应用未启动也可接收)和动态注册(代码注册,跟随组件生命周期)。
ContentProvider 管理应用间数据共享,提供标准 CRUD 接口,通过 URI 定位数据。系统联系人、短信等均通过 ContentProvider 暴露。
追问:
- Activity 的四种启动模式分别适用于什么场景?
- Service 和 IntentService 的区别是什么?IntentService 为什么已废弃?
- 静态注册广播在 Android 8.0 后有哪些限制?如何适配?
- ContentProvider 的 URI 格式是怎样的?如何自定义 Authority?
- 四大组件中哪些可以在 Manifest 中声明多个实例?