简单介绍Android四大组件

Android四大组件:

  • Activity(活动)
  • Service(服务)
  • ContentProvider(内容提供者)
  • BroadcastReceiver(广播接收者)

四大组件在使用的时候都需要在AndroidManifest.xml的application中进行注册:

<activity android:name = "">......</activity>

<service android:name = "">......</sevice>

<provider android:name = "">......</provider>

<receiver android:name = "">.......</receiver>

Activity

  • Activity展示为可视化用户界面,通过程序与用户交互的窗口。
    如我们打开手机联系人,我们所看到的的界面就是Activity,联系人里面的内容如老王、老李等消息人列表以及各种按钮都是放在Activity这个容器里面的,我们可以在这个Activity上通过滑动列表,点击按钮等操作来和应用程序进行交互。

  • 一个Activity占据当前的窗口,响应所有窗口事件,具备控件、菜单等界面元素。
    负责接收用户的操作,点击、滑动等操作都是通过Activity来传递给相应的组件,但是这些组件必须放在Activity里面。

  • Activity需要保存数据和调用系统等功能、妥善管理生命周期和实现界面之间的跳转逻辑等。
    在应用里一般会有多个界面,一个界面对应一个Activity,Activity自行管理这个界面的生命周期,也就是管理这个界面什么时候创建、显示、销毁等。界面之间的跳转即不同Activity之间的跳转,通常通过Intent来进行显示或隐式跳转。

  • 对于开发者而言,一般创建Activity的子类如public class MainActivity extends AppCompatActivity,在其基础上定义界面布局、添加业务逻辑等。

Service

  • 运行在后台的一个组件。
    这里的“后台”其实是相对于Activity而言的,Activity是用户可以看得到,碰得到的一个组件,而Service恰恰相反,用户看不到也碰不到。
  • 封装有完整的功能逻辑实现,就像没有界面的Activity。
  • 一般用于执行长时间运行且不需要提供用户界面的操作,如后台下载、后台播放音乐等。
  • 通过Intent与其他组件进行通信。
    Intent是一个通用的通信机制,可以用于在不同的组件中进行通信。
  • 支持同步和异步的消息机制。
    同步:老王向老李发出请求服务后,老王会一直等待,直到老李完成这个服务操作并把结果返回给老王,然后老王去处理结果。
    异步:老王向老李发出请求服务后,老王可以去做别的事情,老李完成服务操作并返回结果给老王后,老王再去处理结果。

BroadcastReceiver

  • 广播接收者无界面,不执行复杂的逻辑操作,一般都是启动或者发送一些消息给其他的组件,由它们来完成复杂的逻辑。充当了一个消息管道的作用。
  • 各个组件都可以对其感兴趣的事件进行注册,事件发生时,大家通过BroadcastReceiver机制接收其消息。
    比如说某个组件对系统电池的状态比较感兴趣,那它就可以在系统里进行注册,说我对系统的电池状态感兴趣,当电池的状态发生变化的时候,系统就会自动地向订阅者发送相应的信息,然后这个应用就可以对信息进行处理。通过这种方式,就实现了一种异步的通信机制。

Content Provider

  • 在Android中作为应用程序之间共享数据的系统机制。

  • 每个Android应用独立运行,通过它存储并检索数据并向其它应用程序提供访问数据的接口。
    比如说联系人的应用程序,它的Content Provider存储了其他人的联系方式、姓名等,当拨号程序等其它程序需要这些信息时,就可以通过联系人的Content Provider来获取。

  • Android系统提供诸多功能的Content Provider,比如音频文件、视频、图片和私人通讯录等。

拓展

Android的Intent

  • 负责在相同或不同的组件之间传递消息,包含具体请求信息的对象。可以理解为一个传递消息的容器。
  • 系统提供的协助完成应用间的交互调用与通讯的一种机制。
  • 针对不同的组件,Intent所包含的消息内容、类型、激活机制都有所不同
  • 在不同的活动和组件之间起着媒体中介的作用,专门提供组件互相调用的相关信息。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值