Android的四大组件分别是:
1.activity 显示界面
2.service 服务
3.Broadcast Receiver 广播
4.Content Provider 数据通信
1. activity 显示页面:
a.首先activity就是一个单独的窗口;
一个activity相当于我们实际中的一个网页,
当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,
用户可以通过回退操作返回到以前打开过的屏幕。
b.activity 与 Intent 之间进行通讯;
c.在进行页面跳转的时候要在AndroidManifest.xml里面进行配置声明,
不然在运行的时候会报错
2.service 服务
a.service用于在后台完成用户指定的操作。service分为:started(启动)和bound(绑定)
b.通过startService(Intent service)可以启动一个Service,
通过Context.bindService()可以绑定一个Service
c.开发人员需要在应用程序配置文件中声明全部的service,使用<service></service>标签。
d.Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。
Service组件需要继承Service基类。
Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。
3.Broadcast Receiver 广播
a.应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。
广播接收器没有用户界面so,它们可以启动一个activity或serice来响应它们收到的信息,
或者用NotificationManager来通知用户。
通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。
一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
b.广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。
c.动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。
静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。
4.Content Provider 数据通信
a.提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。
其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。
b.只有需要在多个应用程序间共享数据是才需要内容提供者。
c.ContentProvider实现数据共享。
d.开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。
e.ContentProvider使用URI来唯一标识其数据集,通过URI以content://作为前缀,表示该数据由ContentProvider来管理。
。