四大組件之一的Service組件,就是android系統中的服務,在應用中是沒有界面的,只能在後臺運行,而且能夠和其餘的組件進行交互。android
它有這麼幾個特色:1. 它沒法與用戶直接進行交互、必須由用戶或者其餘程序顯示的啓動;2. 它比處於前臺的應用優先級低,但比後臺的其餘應用優先級高,這就決定了當系統由於缺乏內存而銷燬某些沒被利用的資源時,它被銷燬的機率較小。安全
好比,後臺播放音樂、後臺下載、檢測SD卡上文件的變化、記錄當前的地理信息位置的改變等等。簡單來講,就是當某些操做不須要用戶與之進行交互,但又須要持續執行的時候,咱們就可使用Service來知足需求。app
通常來講,咱們能夠把Service分紅本地Service和遠程Service兩大類:
工具
本地Service,指的就是和當前應用存在於同一個進程當中的Service,它們彼此之間擁有共同的內存區域,可以方便簡單地共享某些數據。spa
遠程Service,主要指的是不一樣進程之間的Service訪問。因爲android系統的安全問題致使了咱們在不一樣的進程之間是沒法使用通常的方式進行數據共享的,因此在這裏,咱們須要用到一個由android爲咱們提供的一個叫作AIDL的工具。(AIDL全名叫作Android Interface Description Language,android接口描述語言,在後面會進行具體介紹)。.net
以下圖:orm
由圖可見,要啓動一個Service,咱們有startService和bindService兩種方式。
xml
主要有如下兩個步驟:blog
1. 建立一個類繼承android.app.Service類,實現其抽象方法,並重寫onStartCommand和onDestory方法。
繼承
2.在AndroidMainfest.xml中對這個Service進行配置。