什么是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ù))