当应用程序的所有活动都可见时,如何使服务保持运行。只有在我离开应用程序时关闭服务?
有没有办法在应用的一个活动中启动服务,并在同一个应用程序的另一个活动中停止相同的服务?
当用户离开应用程序时,我不希望该服务继续运行。
答案 0 :(得分:0)
实际上没有“应用”的概念并将其留下。如果从您的某个活动中打开链接,启动浏览器查看它,然后通过后退按钮返回会发生什么?你真的离开了应用程序吗?
您的服务有何帮助?活动是否与它绑定?如果是这样,它将在最后一个客户端解除绑定后自动关闭。如果没有,它应该在完成它的工作后自行关闭(参见IntentService
)。如果它不适合这些模式中的任何一种,也许您根本不需要服务,只需要一些后台线程?
编辑(根据以下评论):
对于运行媒体播放器的服务,通常的方法是持续通知服务,让用户启动活动来控制服务。或者在JB的通知上有按钮来实现类似的功能。此外,如果您将服务作为前台服务,那么将为其提供更高的优先级,并且如果资源较低,则不太可能被杀死。