为什么 Android 服务是作为另一个应用程序组件制作的?
Why Android Service was made as an another application components?
至于其他应用程序组件,如 Activity、Intent、Broadcast Receiver,我可以理解它们的用例,但是文档中写的任何 Service 用例都可以使用简单的 Java class 具有静态成员(变量和方法)。
就像我需要下载文件服务一样。
我可以有一个静态方法,它将在参数中接收 taskListener 和其他必需参数(例如文件的 url)并异步下载文件并将回调提供给 taskListener 的回调方法。
那么我为什么要为此使用服务。
请有人用例子向我解释使用服务的原因
首先,如果您愿意,可以通过导出服务来从应用程序外部启动或绑定服务。这不能通过简单的 Java class 来完成。这对于大多数专门服务(输入法、AccessibilityService
、TileService
等)来说是必不可少的。
其次,服务提高了流程的重要性,告诉 Android 它正在代表用户工作。这有助于在 Android 终止该进程以为其他应用程序释放系统 RAM 之前,让该进程保持更长时间。这不能通过简单的 Java class 来完成。因此,例如,虽然您可以使用简单的 Java class 下载文件,但 Android 可能会在下载完成之前终止您的进程。如果下载由服务管理,则这种情况不太可能发生。
至于其他应用程序组件,如 Activity、Intent、Broadcast Receiver,我可以理解它们的用例,但是文档中写的任何 Service 用例都可以使用简单的 Java class 具有静态成员(变量和方法)。 就像我需要下载文件服务一样。 我可以有一个静态方法,它将在参数中接收 taskListener 和其他必需参数(例如文件的 url)并异步下载文件并将回调提供给 taskListener 的回调方法。 那么我为什么要为此使用服务。
请有人用例子向我解释使用服务的原因
首先,如果您愿意,可以通过导出服务来从应用程序外部启动或绑定服务。这不能通过简单的 Java class 来完成。这对于大多数专门服务(输入法、AccessibilityService
、TileService
等)来说是必不可少的。
其次,服务提高了流程的重要性,告诉 Android 它正在代表用户工作。这有助于在 Android 终止该进程以为其他应用程序释放系统 RAM 之前,让该进程保持更长时间。这不能通过简单的 Java class 来完成。因此,例如,虽然您可以使用简单的 Java class 下载文件,但 Android 可能会在下载完成之前终止您的进程。如果下载由服务管理,则这种情况不太可能发生。