1. 程式人生 > >【面試官問你】說說Android中的Service吧

【面試官問你】說說Android中的Service吧

Service是android中的四大元件之一,它是用於在後臺進行服務的,當應用程式在後臺掛起時,為了保證一些元件還能繼續工作而引入的,它既不是執行緒也不是程序,而是依靠應用主執行緒而存在的。

Service的啟動方法:

1.通過startService啟動後,這個service會一直執行在後臺,即使建立它的activity或者broadcast被銷燬了,除非手動去呼叫stopself()或者stopService();它才回停止。service啟動後,多次啟動startService,onCreate方法只執行一次,onStartCommand方法會多次執行。

2.通過bindService繫結後,該service和啟動它的元件會繫結到一起,當啟動它的元件被銷燬後,會自動執行unBind方法,停止服務。多次bindService,service的生命週期不會多次執行,同一個 Service 可以被多個元件繫結,只有所有繫結它的元件都進行了 unBind 操作,這個 Service 才會被銷燬。

IntentService:

intentService是繼承於Service的,所以service的生命週期和特性他都有,若 Service 不需要同時處理多個請求,那麼使用 IntentService 將是最好選擇,你只需要重寫 onHandleIntent() 方法,該方法接收一個回撥的 Intent 引數,你可以在方法內進行耗時操作,因為它預設開啟了一個子執行緒HandlerThread,操作執行完成後也無需手動呼叫 stopSelf() 方法,onHandleIntent()將會自動呼叫該方法。

恩,就這樣。