国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android的AIDL的一點心得

2019-11-09 17:48:24
字體:
來源:轉載
供稿:網友

       個人理解的通信原理就是客戶端和服務端使用同一個接口,服務端通過service實現這個接口的方法并且暴露(注冊),客戶端通過與service連接得到接口關聯,之后客戶端就能調用服務端接口的方法了(粗略理解,個人覺得每次接口改變,客戶端和服務端都得改,這種架構并不好)

      需要注意幾點:

1.編寫.aidl文件,IDE會自動再gen目錄生成.java文件(客戶端和服務端都一樣,且.aidl文件要保持一致)

2.服務端要寫service,重寫onBind方法,返回.aidl的Stub,Stub要實現.aidl的方法,如下例子:

   @Override    public IBinder onBind(Intent intent) {        return new IAdditionService.Stub() {            /*             * Implement com.android.hellosumaidl.IAdditionService.add(int, int)             */            @Override            public int add(int value1, int value2) throws RemoteException {                return value1 + value2;            }        };    }3.客戶端調用的service的action要與服務端注冊的service的name保持一致

4.客戶端通過ServiceConnection得到服務端的接口,并且使用bindService來調用,如下:

	class AdditionServiceConnection implements ServiceConnection {	    public void onServiceConnected(ComponentName name, IBinder boundService) {	        service = IAdditionService.Stub.asInterface((IBinder)boundService);	        Toast.makeText(MainActivity.this, "Service connected", Toast.LENGTH_LONG).show();	    }	                                                                                                                                                                                                         	    public void onServiceDisconnected(ComponentName name) {	        service = null;	        Toast.makeText(MainActivity.this, "Service disconnected", Toast.LENGTH_LONG).show();	    }	}      PRivate void initService() {            connection = new AdditionServiceConnection();            Bundle args = new Bundle();              Intent intent = new Intent("test.aidl.AdditionService");              intent.putExtras(args);              bindService(intent,connection,Context.BIND_AUTO_CREATE);                      }demo下載地址:http://download.csdn.net/detail/shuaicike/9749061


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六枝特区| 织金县| 高陵县| 吴堡县| 黄浦区| 墨竹工卡县| 花莲县| 炉霍县| 阿拉善左旗| 阜新市| 太保市| 循化| 绿春县| 同江市| 宁安市| 留坝县| 武功县| 彭山县| 响水县| 安丘市| 上林县| 藁城市| 屯留县| 且末县| 永丰县| 虞城县| 景洪市| 丁青县| 云安县| 奎屯市| 凤凰县| 恩平市| 尚志市| 武平县| 海原县| 从江县| 四子王旗| 昭觉县| 循化| 竹溪县| 黔江区|