一起Talk Android吧(第一百九十六回:Android中的Service三)

各位看官們大家好,上一回中咱們說的是Android中service的例子,這一回咱們繼續說該例子。閒話休提,言歸正轉。讓我們一起Talk Android吧!

看官們,我們在上一回是通過具體的代碼演示瞭如何啓動和停止服務,這一回中我們將介紹如何綁定服務。有看官問爲什麼要綁定服務?和誰綁定?我們逐一來回答,綁定是把服務和Activity綁定在一起。其原因是方便服務和Activity之間進行通信。下面是綁定服務的具體操作步驟:

  • 1.創建服務子類以及重寫四個回調函數,一定要重寫onBind方法;
  • 2.自定義Binder類型的子類,在類中可以提供一些方法去完成某件事情,這個事情就是服務的核心功能,比如後臺播放音樂,後臺下載等;
  • 3.創建Binder子類對象,並且在重寫onBind方法時返回該對象;
  • 4.自定義一個類並且實現ServiceConnection接口;在類中重寫onnServiceConnected和onServiceDisconnected方法:
  • 5.創建步驟4中自定義類的對象,以便綁定和解綁定服務時使用;
  • 6.綁定和解綁服務;這兩個操作通過context的bindService和bindService方法就能實現;

以上是整體的步驟,不過還有一些細節需要做說明:

  • 步驟4中onServiceConnected(ComponentName name, IBinder service)方法有兩個參數:第一個爲ComponentName類型的參數,它包含服務的類名並且在類名前面有完整的包名;第二個爲IBinder類型的參數,它是Activity和service通信的通道。因爲通過它可以直接調用service中的各種方法。它就是步驟3中創建服務時onBind方法中返回的哪個Bind子類型的對象。把這個對象向下轉型後,就變成步驟2中子類的對象,這樣就能直接使用服務中提供的方法了,這些方法是步驟2中提供的。
  • onServiceDisconnected(ComponentName name)只有一個ComponentName類型的參數。

各位看官,關於Android中Service的例子咱們就介紹到這裏,欲知後面還有什麼例子,且聽下回分解!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章