Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android 淺談Aidl 通訊機制,androidaidl

android 淺談Aidl 通訊機制,androidaidl

編輯:關於android開發

android 淺談Aidl 通訊機制,androidaidl


服務端:

首先是編寫一個aidl文件,注意AIDL只支持方法,不能定義靜態成員,並且方法也不能有類似public等的修飾符;AIDL運行方法有任何類型的參數和返回值,在java的類型中,以下的類型使用時不需要導入包(import),基本數據類型、String、Map、List.當然為了避免出錯,建議只要使用了,就導入包。

然後在服務端啟動一個服務並注冊,編寫一個任意類實現AIDL文件生成的JAVA接口Stub!

最後在service裡面實例化你的任意類並且在onBind(Intent a)方法上面返回你任意類的對象!

客戶端:

首先把你在服務端的aidl文件完整的復制過來一份,並且保證包名一樣

然後調用bindservice方法綁定你在服務端創建的方法mContext.bindService(intent, mServiceConnection, 0);

其中mServiceConnection是重點:

private ServiceConnection mServiceConnection = new ServiceConnection() {

@Override
public void onServiceConnected(ComponentName name, IBinder service) {//連接上服務器時調用
mService = IRemoteService.Stub.asInterface(service);

}

@Override
public void onServiceDisconnected(ComponentName name) {//沒連上調用
mService = null;
}
};

其中mService就是服務端的aidl對象,我們可以通過它來給服務端的方法賦值

其中的傳的Intent要注意必須提供一個intent-filter來匹配請求是否合法,所以我們在客戶端訪問服務的時候,還必須傳遞包含了匹配action的Intent哦。

 

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