1. 程式人生 > >Service的兩種啟動方式onstartService和onbindService區別

Service的兩種啟動方式onstartService和onbindService區別

我們都知道,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