Android 四大组件简述

本文深入解析Android四大核心组件:Activity、BroadcastReceiver、ContentProvider及Service的功能、用途与工作原理。探讨了各组件间的通信机制,以及如何在AndroidManifest.xml中正确声明与配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android四大组件

1、Activity 活动

  • 一个Activity通常指一个单独的屏幕窗口;
  • Activity之间通过Intent进行通信;
  • App中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。

2、BroadcastReceiver 广播接收器

  • App可以通过它对外部事件进行过滤,只对感兴趣的外部事件进行接受并响应;
  • 广播接收器本身没有用户界面,但它们可以启动一个activity或者serice对收到的消息进行响应(或用NotificationManager来通知用户);
  • BroadcastReceiver的注册方法有两种:程序动态注册、AndroidManifest文件进行静态注册,两者的区别如下:
    • 程序动态注册方式:当用来注册的Activity关掉后,广播也失效了
    • 静态注册方式:无需担忧广播接收器是否被关闭,只要设备是开启状态,无论app是否为启动状态,广播接收器也是打开着的

3、ContentProvider 内容提供者

  • Android平台提供ContentProvider使得一个应用程序的指定数据集能提供给其他应用程序。其他应用程序可以通过ContentResolver类从该内容提供者中获取或者存入数据。
  • 只有需要在多个应用程序之间共享数据时才需要ContentProvider (eg:多个应用程序使用通讯录数据)
  • ContentProvider 使用URI唯一标识其数据集。
  • 开发者一般不会直接用ContentProvider 类的对象,大多是通过 ContentResolver 对象实现对ContentProvider的操作

4、Service 服务

  • 开发人员需要在应用程序配置文件中声明全部的service,使用< service></ service>标签。
  • Service通常用于为其他组件提供后台服务或监控其他组件的运行状态,一般不需要与用户交互,因此Service组件没有图形用户界面;Service组件需要继承Service基类。
  • service用于在后台完成用户指定的操作。service分为两种:
    • started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态
    • bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。
    • startService()与bindService()区别:
      • started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。
      • 使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值