1. 组件作为程序元素与作为服务之间有什么根本不同
应用组件是一个Android应用程序的基本构建块。 每个组件都是一个不同的角度,通过该系统可以进入您的应用程序。 并非所有组件都为用户的实际入口点和一些互相依赖的,但每一个作为自己的实体存在,起着特定的角色,每个人都是独特的建筑块,有助于确定你的应用程序的整体行为。
有四种不同类型的应用程序组件。 每种类型提供不同的目的,并具有明显的生命周期定义组件如何创建和销毁。
这里有四种类型的应用程序组件:
活动
一个活动表示一个单一的屏幕上的用户界面。 例如,电子邮件应用程序可能有一个活动,显示新的电子邮件列表,另一个活动,撰写电子邮件,阅读电子邮件和其他活动。 虽然活动携手合作,形成一个有凝聚力的电子邮件应用程序中的用户体验,每一个都是独立的。 因此,不同的应用程序可以从这些活动的任何一个(如果电子邮件应用程序允许的话)。 例如,一个摄像头的应用程序可以从构成新邮件的电子邮件应用程序中的活动,为了使用户共享图片。
实施的一项活动作为Activity的一个子类,你可以学习更多关于它的活动开发人员指南。
服务
服务是一种在后台运行的组件来执行长时间运行的操作或执行对远程进程的工作。 一个服务不提供用户界面。 例如,一个服务可以在后台播放音乐,而用户在不同的应用程序,或者它可能通过网络获取数据,而不阻塞用户交互与活动。 另一个组成部分,比如一个活动,可以启动该服务,并让它运行或绑定到它,为了与它进行交互。
实现一个服务作为Service的一个子类,你可以学习更多关于它的服务开发指南。
内容提供商
内容提供者管理应用程序数据共享的一组。 您可以将数据存储在文件系统中,SQLite数据库,在网络上,或任何其他持久性存储应用程序可以访问的位置。 通过内容提供者,以及其他的应用程序可以查询甚至修改的内容提供者的数据(如果允许的话)。 例如,Android系统提供管理用户的联系人信息的内容提供商。 因此,任何具有适当权限的应用程序可以查询内容提供商(如ContactsContract.Data )的一部分,一个特定的人读取和写入信息。
内容提供商也可用于读取和写入数据,您的应用程序的私有,而不是共享。 例如, 记事本示例应用程序使用一个内容提供商保存笔记。
内容提供商实现ContentProvider一个子类,并实施了一套标准的API,使其他应用程序来执行交易。 欲了解更多信息,请参阅内容提供商开发指南。
广播接收机
广播接收器是一个组件,全系统广播通知。 许多广播系统源于例如,广播宣布,显示屏已经关闭,电池低,或图片被抓获。 应用程序也可以启动广播,例如,让其他应用程序知道某些数据已经被下载到设备上,可供他们使用。 虽然广播接收机不显示用户界面,它们可以创建一个状态栏通知广播事件发生时,以提醒用户。然而,更常见的是,广播接收器仅仅是“网关”到其他组件的目的是做一个非常小的量的工作。 例如,它可能会启动服务执行基于事件的一些工作。
BroadcastReceiver一个子类的广播接收机被实现为每个广播交付一个Intent对象。 欲了解更多信息,请参阅BroadcastReceiver类。