Android之service生命周期及启动方式
2017-06-12 13:22
260 查看
服务的用途
如果不给应用提供用户界面,应该怎么做呢?如果不用看,不用操作,只要任务在后台运行就行了,如播放音乐,又该怎么做呢?好办,使用服务(service)吧。与activity一样,服务是一个有生命周期回调方法的应用组件。这些回调方法同样会在主UI线程上运行。服务的生命周期
官方的生命周期图
回调方法
onCreate(…)方法:服务创建时调用;onStartCommand(Intent,int,int)方法:每次组件通过startService(Intent)方法启动服务时调用一次。
onBind(Intent)方法:每次绑定服务时调用。
onUnbind(Intent)方法:服务绑定终止时调用。
onDestroy()方法:服务不再需要时调用。
服务的两种启动方式
startservice模式
在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的 onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到 Context.stopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用 startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。bindservice模式
另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service 的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后 Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind 接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service 还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。两种启动方式的区别
startService() 的调用者与服务没有联系,即使调用者退出了,服务仍然运行,而bindService() 的调用者与服务绑在一起,调用者一旦退出了,服务也随即终止掉。作者:林旭
链接:Android之service生命周期及启动方式
相关文章推荐
- Android Service两种启动启动方式 及 adndroid service生命周期
- Android Service生命周期,本地服务远程服务,前台服务后台服务,启动方式,与IntentService区别全面解析
- Android Service两种启动启动方式 及 adndroid service生命周期
- Android Service 浅析(生命周期,启动方式,前台Service)
- Android开发笔记之Service知识的回顾和总结以及常见的启动方式和生命周期
- Android Service两种启动方式及 生命周期
- Android之service生命周期及启动方式
- Android Service启动方式以及生命周期以及通信总结
- Android Service 两种启动方式的区别
- Android Service的两种启动方式
- Android Service学习(1)——Service启动方式之startService
- Android Service的启动方式
- Android Service 两种启动方式
- Android Service 两种启动方式的区别
- Android之Service学习篇一:Service启动方式之startService
- android Service简介及启动关闭方式
- Android的Service与BroadcastReceiver之一 Service简介、创建、配置、启动、停止与其生命周期
- android90--什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service
- [service] service生命周期,启动方式,与intentService的比较
- Android开发学习笔记:Service的简介和启动方式