星期一, 9月 12, 2011

service(一)

Android應用程式學習筆記

Service

Service是android應用程式中四個組件(Activity、Service、Content provider、Broadcast receiver)之一,它能在後台執行長時間運行的操作,且不提供使用者介面。其他的組件能啟動service組件,且即使使用者切換到其他應用程式它仍能繼續在後台運行。此外,組件能與service綁定並與它互動,甚至能執行進程間的通訊。例如,service能處理撥放音樂、檔案存取、或者與content provider互動,所有都是來自後台。

Service基本上採取兩種形式:

Started:
一個應用程式的組件呼叫startService()方法,啟動一個service組件。一旦被啟動後,Service組件能無限期地在後台運行,即使啟動此service組件的組件被銷毀,service組件一樣會繼續運行。通常,被啟動的service組件指運行單一操作並且不傳結果給回呼叫者。例如,一個service組件的工作可能是從網路下載或更新文件,當完成工作後就會自己停止。
Bound:
一個應用程式的組件呼叫bindService()方法,綁定一個service組件。這樣的service組件提供了客戶端與伺服器端這樣的介面,允許其他組件與這個service組件互動,發送要求,取得結果,甚至跨越進程,執行進程間的通訊。這樣的service組件只要有組件綁定,就會一直運行。多個組件能在同一時間綁定service,但是當這些組件都不再綁定於service組件時,service組件就會被銷毀。

通常我們會兩種形式分開來討論,但是你的service組件是可以執行兩種形式-它可以擁有兩種形式,你能簡單的實現一對回呼方法:
onStartCommand()方法允許其他組件啟動它。
onBind()方法允許其他組件綁定它。

無論你的應用程式是started形式、bund形式或者兩種形式都有,任何應用程式組間接能使用該service組件(甚至來自其他應用程式)。然而你也可以宣告service組件為私有的來阻止其他應用程式使用。

沒有留言:

張貼留言