android90--什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service
2013-04-08 19:15
696 查看
在Service的生命周期中,被回调的方法比Activity少一些,只有onCreate, onStart, onDestroy,
onBind和onUnbind。
通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1 通过startService
Service会经历 onCreate 到onStart,然后处于运行状态,stopService的时候调用onDestroy方法。
如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。
2 通过bindService
Service会运行onCreate,然后是调用onBind,这个时候调用者和Service绑定在一起。调用者退出了,Srevice就会调用onUnbind->onDestroyed方法。
所谓绑定在一起就共存亡了。调用者也可以通过调用unbindService方法来停止服务,这时候Srevice就会调用onUnbind->onDestroyed方法。
需要注意的是如果这几个方法交织在一起的话,会出现什么情况呢?
一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。
如果service运行期间调用了bindService,这时候再调用stopService的话,service是不会调用onDestroy方法的,service就stop不掉了,只能调用UnbindService, service就会被销毁
如果一个service通过startService 被start之后,多次调用startService 的话,service会多次调用onStart方法。多次调用stopService的话,service只会调用一次onDestroyed方法。
如果一个service通过bindService被start之后,多次调用bindService的话,service只会调用一次onBind方法。
多次调用unbindService的话会抛出异常。
onBind和onUnbind。
通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。
1 通过startService
Service会经历 onCreate 到onStart,然后处于运行状态,stopService的时候调用onDestroy方法。
如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。
2 通过bindService
Service会运行onCreate,然后是调用onBind,这个时候调用者和Service绑定在一起。调用者退出了,Srevice就会调用onUnbind->onDestroyed方法。
所谓绑定在一起就共存亡了。调用者也可以通过调用unbindService方法来停止服务,这时候Srevice就会调用onUnbind->onDestroyed方法。
需要注意的是如果这几个方法交织在一起的话,会出现什么情况呢?
一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。
如果service运行期间调用了bindService,这时候再调用stopService的话,service是不会调用onDestroy方法的,service就stop不掉了,只能调用UnbindService, service就会被销毁
如果一个service通过startService 被start之后,多次调用startService 的话,service会多次调用onStart方法。多次调用stopService的话,service只会调用一次onDestroyed方法。
如果一个service通过bindService被start之后,多次调用bindService的话,service只会调用一次onBind方法。
多次调用unbindService的话会抛出异常。
相关文章推荐
- 什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?
- Service 有哪些启动方法,有什么区别,怎样停用 Service?
- Service有哪些启动方法?有什么区别
- Service有哪些启动方法?有什么区别
- Service有哪些启动方法?有什么区别?
- Android Service 两种启动方法和区别
- Service生命周期和启动方法以及IntentService
- Android Service生命周期,本地服务远程服务,前台服务后台服务,启动方式,与IntentService区别全面解析
- Android Service启动方式以及生命周期以及通信总结
- Android 服务(service)的生命周期以及利用bindservice调用服务里面的方法
- Android Service的理论探讨与实践(一)service的启动方式以及区别的探索。
- Android--Service的启动方法和区别
- 兔子--在Android系统中,启动Service的2种方式以及区别
- 详解Service生命周期以及启动方法和停止方法
- Service 的生命周期;两种启动方法和区别
- Android开发笔记之Service知识的回顾和总结以及常见的启动方式和生命周期
- android90 bind方式启动服务service调用service里的方法
- Android之ContextMenu的使用方法以及与OptionMenu的区别
- 用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?
- Android Activity生命周期以及Fragment生命周期的区别与分析