當前位置:商標查詢大全網 - 網遊競技 - startService 和 bindService的區別

startService 和 bindService的區別

1. 生命周期:

startService()方式啟動,Service是通過接受Intent並且會經歷onCreate()和onStart()。當用戶在發出意圖使之銷毀時會經歷onDestroy(),而bindService()方式啟動,與Activity綁定的時候,會經歷onCreate()和onBind(),而當Activity被銷毀的時候,Service會先調用onUnbind()然後是onDestroy()。

2. 控制方式:

前者的控制方式需要使用固定的方法,對Service進行單壹的操作。而後者由於與Activity綁定,不用考慮其生命周期問題,並且從發送Intent的被動操作,變為可以主動對Service對象進行操作,我們甚至可以建立壹個Handler類,對Service進行相關的操作。大大加強了Service的靈活性、可操作性。

總結:對於簡單的應用startService()啟動方式能帶來更少的代碼,簡單的操作。對於復雜的應用bindService()方式,雖然帶來的更多的編碼,但同時也帶來了更好的可操作性,使其使用起來更像Activity。