(學(xué)習(xí)02)理解Service

什么是Service?

? ? ? ?Service是Android四大組件之一,是一種計(jì)算型組件,運(yùn)行于主線程中,用于在后臺(tái)執(zhí)行一系列計(jì)算任務(wù)(但是耗時(shí)計(jì)算仍然需要在單獨(dú)的線程中完成,不能用Service處理)。

? ? ? ?Service有兩種狀態(tài):啟動(dòng)狀態(tài),綁定狀態(tài)。啟動(dòng)狀態(tài)下的Service不能與外界有直接的交互通信;綁定狀態(tài)的Service可以方便的與外界進(jìn)行通信。

問題一、Service的start和bind狀態(tài)有什么區(qū)別?

????start啟動(dòng)的service,service有獨(dú)立的生命周期,不依賴某個(gè)組件。

? ? 多次調(diào)用onStart方法,會(huì)調(diào)用多次onStartCommand,start啟動(dòng)的service,必須通過stopService或者stopSelf來停止service(intentService會(huì)自動(dòng)調(diào)用stopSelf方法)。

????多次調(diào)用bind方法,只會(huì)調(diào)用一次onBind方法。bind綁定的service,service會(huì)依賴該組件,組件銷毀,Service跟隨組件銷毀。

問題二、同一個(gè)Service,先startService,然后bindService,如何把它停止掉?

????startService方法不論調(diào)用多少次,都只需要一次stopService即可停止。

????bindService多次,會(huì)調(diào)用一次stopService跟多次unBindService方法,但是如果是同一個(gè)組件bind同一個(gè)Service多次,那么只需要調(diào)用unBind一次。執(zhí)行完stopService跟unBindService后,會(huì)調(diào)用onDestoryService方法一次。

問題三、Service的onStartCommand方法的返回值描述?不同返回值有什么區(qū)別?

問題四、Service的生命周期描述以及運(yùn)行的線程說明?

(未完待續(xù))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容