Android Service---终止服务

被启动类型的服务必须管理它自己的生命周期。也就是说除非系统要回收系统内存,否则系统不会终止或销毁这个服务,在onStartCommand()方法返回后,这个服务会继续运行。因此而这种类型的服务必须通过调用stopSelf()方法或另一个组件通过调用stopService()方法才能终止。

一旦用stopSelf()方法或stopService()方法请求终止服务,那么系统一有可能就会销毁这个服务。

但是,如果你的服务同时处理多个对onStartCommand()方法的请求,那么在你完成请求启动过程时,不应该终止这个服务,因为你的服务可能正在接受一个新的启动请求(在第一个请求结束时终止服务有可能会终止第二个请求)。要避免这个问题,你能够使用stopSelf(int)方法来确保你请求终止的服务始终是基于最近启动的请求。也就是说,调用stopSelf(int)方法时,你要把那个要终止的服务ID传递给这个方法(这个ID是发送给onStartCommand()方法的)。这样如果服务在你调用stopSelf(int)方法之前收到了一个新的启动请求,那么这个ID就会因不匹配而不被终止。

警告:重要的是你的应用程序要在工作结束时终止它们的服务,从而避免浪费系统资源和电池电量。如果需要,其他的组件能够调用stopService()方法终止服务。即使对于能够绑定的服务,如果这个服务接收了对onStartCommand()方法的调用,你也必须自己来终止这个服务。

关于服务的生命周期的更多信息,请看“管理服务的生命周期”

注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值