startservice和bindservice的区别
2013-02-19 11:31
323 查看
之前的笔记,放上来做个记录。不当之处请大家指教!谢谢~
这两个方法都能启动服务,两者的使用场合不同
使用StartService()这个方法启动服务,调用者与服务之间没有关联,即使调用者退出后,服务仍然运行。
使用bindservice()启动服务,调用者与服务绑定在一起,调用者一旦退出了,服务也就终止了,有“不求同生,必须同死”的特点。
===============================
用StartService()启动服务是,服务尚未创建时,系统会先去调用服务的onCreate()方法,在调用onStart()方法。假使服务已经被创建了,多次使用StartService()方法不会导致多次创建服务,但会导致多次创建onStart()方法。如果服务是用onStart()方法启动,那么只能用stopService()来停止服务。服务结束时会调用onDestroy()方法。
用bindService()方法启动服务,在服务尚未创建时,系统先调用服务的onCreate()方法,接着调用onBind()方法,这时候调用者和服务绑定在一起,调用者退出时,系统会调用onUnbind()方法,接着会调用onDestroy()方法。如果调用bindService()前服务已经绑定多次调用bindService()方法并不会导致多次创建服务及绑定(也就是onCreate()方法和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务接触绑定,可以调用unbindservice()方法。调用该方法也会导致系统调用服务的onUnbind()和onDestroy()方法。
===============================
混合使用bindService()和StartService()方法
Service的onCreate()方法只会被调用一次
如果先bind了,那么start的时候会直接运行Service的onStart()方法。
如果你先start了,那么bind就直接onBind()
如果你先bind上了,那就stop不了,要先Unbindservie,再stopService
这两个方法都能启动服务,两者的使用场合不同
使用StartService()这个方法启动服务,调用者与服务之间没有关联,即使调用者退出后,服务仍然运行。
使用bindservice()启动服务,调用者与服务绑定在一起,调用者一旦退出了,服务也就终止了,有“不求同生,必须同死”的特点。
===============================
用StartService()启动服务是,服务尚未创建时,系统会先去调用服务的onCreate()方法,在调用onStart()方法。假使服务已经被创建了,多次使用StartService()方法不会导致多次创建服务,但会导致多次创建onStart()方法。如果服务是用onStart()方法启动,那么只能用stopService()来停止服务。服务结束时会调用onDestroy()方法。
用bindService()方法启动服务,在服务尚未创建时,系统先调用服务的onCreate()方法,接着调用onBind()方法,这时候调用者和服务绑定在一起,调用者退出时,系统会调用onUnbind()方法,接着会调用onDestroy()方法。如果调用bindService()前服务已经绑定多次调用bindService()方法并不会导致多次创建服务及绑定(也就是onCreate()方法和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务接触绑定,可以调用unbindservice()方法。调用该方法也会导致系统调用服务的onUnbind()和onDestroy()方法。
===============================
混合使用bindService()和StartService()方法
Service的onCreate()方法只会被调用一次
如果先bind了,那么start的时候会直接运行Service的onStart()方法。
如果你先start了,那么bind就直接onBind()
如果你先bind上了,那就stop不了,要先Unbindservie,再stopService
相关文章推荐
- startService与bindService有什么区别
- startService与bindService的区别
- [AndroidTips]startService与bindService的区别
- android四大组件之一Service的startService()与bindService()区别?
- startService 和 bindService的区别
- Android入门-Service-start,end,bind,unbind之间的区别
- Service中的startService或者bindService的区别
- startService与bindService的区别
- startService与bindService的区别
- Android学习札记三:初涉Service(1)之Context.startService()与Context.bindService()区别
- Android 启动 Service(startservice和bindservice) 两种方式的区别
- startService与bindService的区别
- 【Android四大组件之Service】(二)Android中Service的使用详解和注意点(LocalService),及startService与bindService的区别
- startService与bindService的区别
- startService与bindService的区别
- startService与bindService的区别
- Android之startService与bindService的区别
- startService与bindService的区别
- Service的startService()和bindService()的区别
- startService与bindService的区别