Android Service---终止服务

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

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

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

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

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

相关文章推荐

android Service的stopself方法

今天被stopself坑了,mark一下。。。 一直知道stopself是停掉Service的方法,但是却不知道什么时候停止。以为调用了stopself就会马上停止,实际上我错了。 在onStartC...

关于Android Service真正的完全详解,你需要知道的一切

转载请注明出处(万分感谢!):  http://blog.csdn.net/javazejian/article/details/52709857  出自【zejian的博客】   Se...

关于Android Service真正的完全详解,你需要知道的一切

Service 1.Service基础知识概述   Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一...

android Service的stopSelf

startId:代表启动服务的次数,由系统生成。 stopSelf(int startId): 在其参数startId跟最后启动该service时生成的ID相等时才会执行停止服务。 stopSe...

Android Service 详解四:开始停止service

开始一个Service  你可以从一个activity或从其它应用的组件通过传递一个Intent(指定了要启动的服务)给startService()启动一个服务.Android系统然后调用servic...
  • nkmnkm
  • nkmnkm
  • 2012年03月08日 07:31
  • 73260

Android下结束进程的方法

Android下结束进程的方法   最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。   在Android平台下,结束进程的方法还是比...

java.lang.IllegalArgumentException: Receiver not registered

出现这个异常有2中可能: 1.没有注册就去使用unregister。 2.Context register,context = other context, context.unregister,...

Android服务Service_详解文档

  • 2014年01月18日 10:07
  • 77KB
  • 下载

Android Service完全解析,关于服务你所需知道的一切(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Service---终止服务
举报原因:
原因补充:

(最多只允许输入30个字)