Answers:
Android应用程序具有三种组件。通常,用户不需要了解它们:它们是应用程序作者将特定行为编程到其应用程序中的一种方式。但是,如果您正在密切注意应用程序的行为(例如,在任务管理器中),或者正在使用Tasker之类的应用程序使事情自动化,那么了解它们在系统中的组合方式将很有帮助。
一个活动是最熟悉的类型的组件:这是你可以看到一个窗口:要么全屏或对话框的大小。活动仅在屏幕上显示时运行。退出活动后,Android会将该应用保留在内存中,以准备再次启动,但是该活动将无法运行,这意味着它不会消耗电池或网络。应用程序使用意图启动活动。目的可以明确指定要启动的活动,也可以指定要执行的操作(例如打开特定文件)。如果一个以上的活动可以“处理”该意图,则会看到对话框要求您选择一个。
甲服务是另一应用程序组件。一旦另一个组件(可能是活动或另一个服务)启动了服务,它就会在后台运行,直到自身停止。这意味着一项服务可能会使您的手机保持唤醒状态(使用唤醒锁),耗尽电池电量或使用大量网络数据,而屏幕上没有任何显示。
应用程序可以使用服务在后台执行长时间运行的流程,例如从服务器下载文件,检查电子邮件或检查您的位置。尽管服务不会显示或直接与您互动,但它们仍会显示在“正在运行的应用程序”列表中。在“ 设置”应用中,选择“ 应用”或“ 应用管理器”,然后选择“ 运行”。您可以通过这种方式停止服务,但这通常不是必需的。由于服务不是直接可见的,因此Android认为服务不如活动重要,因此当手机需要更多内存时,它们将是第一个被杀死的服务。
广播接收器是第三种组件。就像服务一样,它们仅存在于后台,不会直接与您互动。但是与服务不同,它们无法保持运行或执行长时间的任务:它们存在以响应事件。与活动和服务不同,一次即可启动一个以上的广播接收器。
组件可能向一个应用程序广播意图,但更频繁地广播意图而不指定特定的应用程序。在这种情况下,意图通常表示发生的事件,例如电池电量不足。系统查找所有已注册兴趣的广播接收机(使用意图过滤器),然后依次运行每个广播接收机。每个广播接收器都可以立即做出反应,例如通过创建通知来进行响应,或者可以启动服务或活动以采取进一步的措施。广播接收器处理完事件后,它将立即停止并且不会再次运行,直到广播另一个类似事件为止。
当您从Google Play下载应用程序时,这三个组件共同工作的一个例子。首先,Google Play活动提供了可视界面,供您选择要下载的内容。应用程序列表可能是一项活动;单击“安装”按钮将启动另一个活动,以显示确认或付款对话框。确认后,对话框活动将启动服务。即使活动已完成并且不再运行,该服务仍将继续下载内容。
但是,在下载新应用程序时,手机可能会失去Internet连接。如果发生这种情况,Google Play的下载服务将注册一个广播接收器,并带有一个意图过滤器,表明它对网络连接更改感兴趣,然后该服务将自行停止。当电话连接到Internet时,系统广播事件。Android将启动已注册Google Play服务的广播接收器,以及等待该事件的任何其他广播接收器。在这种情况下,广播接收器将再次启动下载服务。该服务将在下载进行时创建通知,当下载完成时,它将发送自己的广播以通知其他应用程序已安装新软件包,然后自行停止。反过来,这将从其他应用开始广播接收器,
综上所述:-