android 关联服务,android服务startService()和bindService()

如果使用startService()启动服务,则应使用stopService()停止服务。

系统可以运行服务的原因有两个。 如果有人调用Context.startService(),则系统将检索服务(创建服务,并在需要时调用其onCreate()方法),然后使用客户端提供的参数调用其onStartCommand(Intent,int,int)方法。 此时服务将继续运行,直到调用Context.stopService()或stopSelf()。 请注意,对Context.startService()的多次调用不会嵌套(尽管它们确实会导致对onStartCommand()的多次调用),因此,无论启动了多少次,一旦Context.stopService()或stopSelf都会停止服务 () 叫做; 但是,服务可以使用其stopSelf(int)方法来确保在处理启动的意图之前不停止服务。

您可以使用bindService()绑定到任意数量的ServiceConnection,但要注意传递给它的标志。 如果您传递0,则如果您调用stopService(),服务将停止(我不确切地知道ServiceConnection会发生什么)。 否则,如果您希望服务一直存活到ServiceConnection绑定到它,则使用BIND_AUTO_CREATE。

这是来自stopService():

请求停止给定的应用程序服务。 如果该服务未运行,则不会发生任何事情。 否则它将停止。 请注意,不计入对startService()的调用-无论服务启动了多少次,都将停止该服务。

请注意,如果停止的服务仍然具有绑定了ServiceConnection对象且已设置BIND_AUTO_CREATE,则在删除所有这些绑定之前,该服务不会被销毁。 有关服务生命周期的更多详细信息,请参见服务文档。

如果您没有停止给定服务的权限,则此函数将引发SecurityException。

我希望这有帮助..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值