在解釋這個問題以前, 先來看一個Android系統中進程的優先級(從高到低)android
因而可知, Service對於android系統來講,殺死的優先級別是比較低的,通常不會殺死service, 這就保證了Service能夠長期在後臺運行.線程
另外, Service是沒有界面的, 也是運行在主線程中的,因此若是要在Service中執行耗時的操做,須要新建一條線程.對象
功能:用於實現應用程序本身的一些耗時任務,好比查詢升級信息,並不佔用應用程序好比Activity所屬線程,而是單開線程後臺執行,這樣用戶體驗比較好。接口
使用:在Service能夠調用Context.startService()啓動,調用Context.stopService()結束。在內部能夠調用Service.stopSelf() 或 Service.stopSelfResult()來本身中止。不管調用了多少次startService(),都只需調用一次stopService()來中止。進程
功能:可被其餘應用程序複用,好比天氣預報服務,其餘應用程序不須要再寫這樣的服務,調用已有的便可。事件
使用:能夠定義接口並把接口暴露出來,以便其餘應用進行操做。客戶端創建到服務對象的鏈接,並經過那個鏈接來調用服務。調用Context.bindService()方法創建鏈接,並啓動,以調用 Context.unbindService()關閉鏈接。多個客戶端能夠綁定至同一個服務。若是服務此時尚未加載,bindService()會先加載它。ci