android 启动service的两种方式有什么不同
2015-05-28 14:54
435 查看
有两种启动方式:一种:startService,一种:bindService:
他们对service的生命周期影响是不一样的。
1:启动startService:
Service会经历onCreate->onStart,
stopService的时候直接onDestroy如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的话,Service会一直在后台运行。下次TestServiceHolder再起来可以stopService
2:通过bindService:
Service只会运行onCreate,这个时候TestServiceHolder和TestService绑定在一起
TestServiceHolder退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。
那有同学问了,要是这几个方法交织在一起的话,会出现什么情况呢?
一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的
startService又bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,
就
stop不掉了,对啊,就是stopService不好使了,只能先UnbindService,再StopService,
所以是先start还是先bind行为是有区别的
他们对service的生命周期影响是不一样的。
1:启动startService:
Service会经历onCreate->onStart,
stopService的时候直接onDestroy如果是调用者(TestServiceHolder)自己直接退出而没有调用stopService的话,Service会一直在后台运行。下次TestServiceHolder再起来可以stopService
2:通过bindService:
Service只会运行onCreate,这个时候TestServiceHolder和TestService绑定在一起
TestServiceHolder退出了,Srevice就会调用onUnbind->onDestroyed所谓绑定在一起就共存亡了。
那有同学问了,要是这几个方法交织在一起的话,会出现什么情况呢?
一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的
startService又bindService,Service只被创建一次。如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。如果你先bind上了,
就
stop不掉了,对啊,就是stopService不好使了,只能先UnbindService,再StopService,
所以是先start还是先bind行为是有区别的
相关文章推荐
- Android的Service了解和两种启动方式
- Android中服务(Service)的的生命周期,两种开启服务的方式的不同点,Service与Activity之间的通讯
- Android Service的两种启动方式
- Android Service 两种启动方式的区别
- Android 两种启动Service(远程)的方式:Bind 与Start
- Android Service两种启动方式及 生命周期
- Android Service的两种启动方式
- Android Service 两种启动方式的区别
- Android 启动 Service(startservice和bindservice) 两种方式的区别
- Android Service两种启动方式
- Android Service两种启动启动方式 及 adndroid service生命周期
- android的两种启动service方式及混用的情况
- Android Service两种启动方式
- Android -- service两种启动方式startService与bindService
- 【Android】- Android Service的两种启动方式
- Android中,关于service的启动两种方式描述不正确的是
- Android Service 两种启动方式的区别
- Android Service 两种启动方式的区别
- Android Service两种启动方式
- android面试常用 service的两种启动方式