Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android -- 跨應用綁定service(AIDL)

Android -- 跨應用綁定service(AIDL)

編輯:關於Android編程

之前一章記錄了跨應用啟動service,之前學習過startService於bindService的區別及用法。
使用bindService方法,activity需要service返回一個Binder對象,那麼如果是兩個應用怎麼實現呢,這裡就涉及到了一個AIDL的概念。

AIDL (Android Interface Definition Language) 是一種IDL 語言,用於生成可以在Android設備上兩個進程之間進行進程間通信(interprocess communication, IPC)的代碼。如果在一個進程中(例如Activity)要調用另一個進程中(例如Service)對象的操作,就可以使用AIDL生成可序列化的參數。

下面我們來看如何使用,
首先我們需要在service1項目中創建一個aidl接口。
我用的是eclipse,創建方法,包名右鍵–NEW–File–.aidl後綴的名稱**,如圖
aidl文件中的自己輸入接口代碼。
這裡寫圖片描述
創建完文件後,clear工程,會在gen目錄下生產相應的java文件。

第二步
進入service1項目中的service修改onBinder方法<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPqOstPrC68jnz8I8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;"> @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return new IMyService.Stub() { @Override public void basicType() throws RemoteException { // TODO Auto-generated method stub } }; }

至此,一個簡單的aidl創建成功。

我們再回到service2項目中,增加按鈕事件監聽,

        case R.id.button3:
            bindService(serviceIntent, this, Context.BIND_AUTO_CREATE);
            break;
        case R.id.button4:
            unbindService(this);
            break;

成功完成service2項目綁定service1項目中的service

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved