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