AIDL:應(yīng)用程序接口定義語言
10年積累的網(wǎng)站設(shè)計(jì)、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有魏縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
注:每當(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());