Rebuild Project操作來生效一、通過一個(gè)App控制另一個(gè)App的Service在要調(diào)用的App的..."/>
您好,登錄后才能下訂單哦!
AIDL:應(yīng)用程序接口定義語言
注:每當(dāng)創(chuàng)建或修改AIDL文件后,都需要執(zhí)行Build->Rebuild Project操作來生效
一、通過一個(gè)App控制另一個(gè)App的Service
在要調(diào)用的App的MainActivity里用intent設(shè)置一個(gè)部件,參數(shù)是部件名字,一個(gè)是被調(diào)用的包名,一個(gè)是被調(diào)用的服務(wù)類名
然后在要調(diào)用的App的MainActivity里用startService和stopService即可控制另一個(gè)程序的Service
二、通過一個(gè)App綁定另一個(gè)App的Service
在上面一的基礎(chǔ)上,在被調(diào)用的App里新建一個(gè)AIDL文件
在被調(diào)用服務(wù)類里重新onBind方法,返回值實(shí)現(xiàn)了剛才新建的AIDL文件產(chǎn)生的接口的方法
在調(diào)用的MainActivity里,同之前學(xué)習(xí)的Service通信,用bindService和unbindService方法來實(shí)現(xiàn),當(dāng)然還要實(shí)現(xiàn)onServiceConnected和onServiceDisconnected兩個(gè)方法,可以看我之前的博客
三、同步數(shù)據(jù)到綁定的Service中
1)在AIDL創(chuàng)建的接口中再寫一個(gè)方法setData,在MyService中實(shí)現(xiàn)
2)在調(diào)用的App里需要?jiǎng)?chuàng)建和被調(diào)用的AIDL文件一樣的文件
3)在調(diào)用的App的MainActivity種創(chuàng)建一個(gè)AIDL文件的類的binder
IAppServiceRemoteBinder binder=null;
4)在onServiceConnected方法中將binder與service聯(lián)系起來
用binder.setData方法將數(shù)據(jù)傳入binder完成通信
binder.setData(edt.getText().toString());
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。