Android启动/停止服务

Android启动/停止服务,android,service,android-activity,Android,Service,Android Activity,我有一个包含多个活动的应用程序。所有活动都必须访问本地服务。我希望在启动应用程序时启动服务,并在 a) 应用程序已销毁(返回键) b) 应用程序已停止(主键) c) 设备处于深度睡眠状态(电源键) 基本上,服务不应该在没有可见活动的情况下运行 我在onResume()中的每个活动中绑定服务,并在onPause()中的每个活动中解除绑定服务。不幸的是,每次我切换活动时,它都会重新创建服务,因为在新活动绑定服务之前,服务会解除绑定 现在有人知道如何预防吗?看看 但是,如果选择实现onStartCom

我有一个包含多个活动的应用程序。所有活动都必须访问本地服务。我希望在启动应用程序时启动服务,并在

a) 应用程序已销毁(返回键)

b) 应用程序已停止(主键)

c) 设备处于深度睡眠状态(电源键)

基本上,服务不应该在没有可见活动的情况下运行

我在onResume()中的每个活动中绑定服务,并在onPause()中的每个活动中解除绑定服务。不幸的是,每次我切换活动时,它都会重新创建服务,因为在新活动绑定服务之前,服务会解除绑定

现在有人知道如何预防吗?

看看

但是,如果选择实现onStartCommand()回调 方法,则必须显式停止该服务,因为该服务 现在被认为已经开始。在这种情况下,服务运行到 服务通过stopSelf()或其他组件调用停止自身 stopService(),无论它是否绑定到任何客户端


假设您使用Context.BIND\u AUTO\u CREATE进行绑定,那么您就快到了。在onStart()中绑定服务,并在onStop()中解除绑定。您应该发现,当应用程序从第一个活动切换到第二个活动时,第二个活动的开始发生在第一个活动停止之前。我已经在我的应用程序中使用了此技术,并登录了所有。。方法;当我切换时,它们按以下顺序出现:

 FIRST Activity onCreate
 FIRST Activity onStart
 FIRST Activity onResume
 FIRST Activity onPause
 SECOND Activity onCreate
 SECOND Activity onStart
 SECOND Activity onResume
 FIRST Activity onStop

因此,在短时间内,服务绑定了两个活动,这一点都没有坏处。当没有活动绑定时,服务将停止。

非常感谢,这正是我想要的!