理解Android服务行为

理解Android服务行为,android,service,Android,Service,我今天注意到Android服务的一个特殊行为,我以前没有意识到,我想知道它的目的是什么。在阅读文档之后,我可以确认这是预期的行为,但无法理解此设计背后的原因 该服务在后台无限期运行,直到 StopSelf()被调用,或者android系统由于低成本而将其销毁 记忆。这意味着服务在完成其OnstartCommand()方法的执行后,将继续显示在Running services页面上 我不明白这种行为的目的是什么?我相信一旦执行了onstart命令,服务应该停止。为什么它必须在后台运行(或者如果措辞

我今天注意到Android服务的一个特殊行为,我以前没有意识到,我想知道它的目的是什么。在阅读文档之后,我可以确认这是预期的行为,但无法理解此设计背后的原因

该服务在后台无限期运行,直到
StopSelf()
被调用,或者android系统由于低成本而将其销毁 记忆。这意味着服务在完成其OnstartCommand()方法的执行后,将继续显示在Running services页面上


我不明白这种行为的目的是什么?我相信一旦执行了
onstart命令
,服务应该停止。为什么它必须在后台运行(或者如果措辞正确,就留在内存中)。这仅仅是因为启动服务的新意图可以更快地提供服务,而不是从头开始在内存中创建服务的开销。

服务也可以绑定到进程间通信。IntentService按照您对队列所说的做。它一次服务一个意图,完成后自动停止服务。对如何使用服务以及如何启动服务的区别有一个很好的概述。

Android倾向于保持现状。即使在你的应用程序退出并且最后一个活动被破坏之后,Linux进程也会保持活动状态,直到Android需要内存

服务覆盖得很好。请密切注意运行服务的两种方式:绑定和启动。我觉得奇怪的是,书籍没有很好地涵盖服务;O'Reilly的《Android编程》一书只给了他们三分之一的页面!需要知道的重要一点是,活动并不是Android中唯一的头等公民;服务同样重要。任何时候,如果您想“做一些”在逻辑上不包含在单个活动生命周期中的事情,那么使用服务可能是正确的