Service的两种启动方式onstartService和onbindService区别

时间:2021-12-11 19:18:30

我们都知道,Service启动有两种方法,一种是onbindService(绑定),一种是onstartService(启动),那这两者究竟有什么不同呢?

闲话:今天是我第一次写博客,第一次就这样献给csdn了,我不是大神,只是一个刚工作的实习生,写博客只是为了分享我以前遇到的问题和提高自己,
以后我会保持每周最少一更,帮助更多新手解决难题,毕竟编程的最大的乐趣是创造价值。

下面就不贴代码了,一小丢丢思路,让新手明白这两者的区别。
1:onstartService只是启动Service,调用者和服务是没有关联的,即使调用者退出了,服务依然在后台运行,而onbindService是将调用者与服务绑定,一旦调用者退出,服务也跟着退出。
2:生命周期不同
onstartService生命周期:
onCreate()->onStartCommand()->startService()->onDestroy()
onbindService生命周期:
onCreate()->onBind()->onUnbind()->onDestroy()

举一个简单的例子,最常用的Service就是音乐播放,如果你要startService的话,应用退出了,音乐还在播放。用bindService的话,程序退出了,音乐也就停了,是不是很容易理解呢!!
如果觉得不够详细,可以参考下面一篇博客Service的使用,还有一个音乐播放服务的实例,可以复制到自己电脑上试一试!
http://blog.csdn.net/amheaven1121/article/details/7371064