浅谈四大组件的通信机制

Activity

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

Service

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

Content Provider

  • android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者获取或存入数据。
  • 只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。
  • ContentProvider实现数据共享,ContentResolver用于保存和获取数据,并使其对所有应用数据可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。
  • 开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
  • ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理

BrodcastReceiver

  • 你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activty或service来响应它们收到的信息,或者用NotificationMananger来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背登、震动、播放声音等。一般来说是在状态上放一个持久的图标,用户可以打开它并获取消息。
  • 广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。
  • 动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否关闭,只要设备是打开状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhoujian970

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值