四大应用组件


1. Activity

1.1 Activity 表示具有用户界面的单一屏幕。

这些 Activity 通过协作在电子邮件应用中形成了一种紧密结合的用户体验。

Activity

2. 服务

2.1 服务是一种在后台运行的组件,用于执行长时间运行的操作或为远程进程执行作业。


2.3 服务作为 Service

3. 内容提供程序

3.1 内容提供程序管理一组共享的应用数据。您可以将数据存储在文件系统、SQLite 数据库、网络上或您的应用可以访问的任何其他永久性存储位置。 其他应用可以通过内容提供程序查询数据,甚至修改数据(如果内容提供程序允许)。 例如,Android 系统可提供管理用户联系人信息的内容提供程序。 因此,任何具有适当权限的应用都可以查询内容提供程序的某一部分(如 

ContactsContract.Data),以读取和写入有关特定人员的信息。


3.2 内容提供程序也适用于读取和写入您的应用不共享的私有数据。 例如,记事本示例应用使用内容提供程序来保存笔记。

3.3 内容提供程序作为 ContentProvider

4. 广播接收器

4.1 广播接收器是一种用于响应系统范围广播通知的组件。 许多广播都是由系统发起的。 例如,通知屏幕已关闭、电池电量不足或已拍摄照片的广播。应用也可以发起广播 — 例如,通知其他应用某些数据已下载至设备,并且可供其使用。

4.2 广播接收器不会显示用户界面,但它们可以 创建状态栏通知,在发生广播事件时提醒用户。

4.3 广播接收器更常见的用途只是作为通向其他组件的“通道”,设计用于执行极少量的工作。 例如,它可能会基于事件发起一项服务来执行某项工作。

4.4 广播接收器作为 BroadcastReceiver 的子类实现,并且每条广播都作为 Intent 对象进行传递。 


5. 四大组件的启动


5.1 通过 Intent 异步消息进行启动:Activity , 服务 , 广播接收器 ;

启动方法:

Activity : 将 Intent 传递到 startActivity() 或 startActivityForResult()服务:将 Intent 传递到 startService() 来启动服务广播接收器:将 Intent 传递到 sendBroadcast()sendOrderedBroadcast() 或 sendStickyBroadcast() 等方法来发起广播5.2 内容提供程序,在成为 ContentResolver 事务的组件可以无需执行事务,而是改为在 ContentResolver 层(以确保安全)。启动方法:在 ContentResolver 上调用 query() 来对内容提供程序执行查询。