1

至于其他应用程序组件,如活动,意图,广播接收器,我可以理解他们的用例,但无论使用什么样的服务写在文档中,都可以使用具有静态成员(变量和方法)的简单Java类来实现。 就像我需要下载文件服务一样。 我可以有一个静态方法,它将在参数中接收taskListener和其他必需的参数(例如文件的url)并下载异步文件,并将回调函数赋给taskListener的回调方法。 那么,为什么我应该使用服务。为什么Android服务是作为另一个应用程序组件制作的?

请别人解释我提前使用服务,例如

感谢

+0

“服务”有自己的生命周期和独立于“活动”的时间。借助静态字段和异步任务,您有很多失败的可能性。 – tynn

+0

由于过程(和下载)很可能会从内存中移除,除非用户打开了电话屏幕,并且用户在整个下载过程中直接查看活动而不关闭它。当系统需要内存时,它将首先关闭活动,然后再进入服务。 – DeeV

回答

2

首先的原因,服务可以从应用程序之外,如果你愿意,通过让服务是启动还是必然出口。这不能通过一个简单的Java类来完成。这对于大多数专业服务(输入法,AccessibilityService,TileService等)而言至关重要。

其次,服务提高了进程的重要性,告诉Android它正在代表用户开展工作。这有助于在Android终止该流程以释放其他应用程序的系统RAM之前保持更长的流程。这不能通过一个简单的Java类来完成。因此,例如,尽管您可以使用简单的Java类下载文件,但Android可能会在下载完成之前终止您的过程。如果下载由服务管理,则这种情况不太可能发生。

相关问题