Rebuild Project操作來生效一、通過一個(gè)App控制另一個(gè)App的Service在要調(diào)用的App的..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

發(fā)布時(shí)間:2020-07-04 01:55:17 來源:網(wǎng)絡(luò) 閱讀:342 作者:wx57a1620925627 欄目:軟件技術(shù)

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ù)類名

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用然后在要調(diào)用的App的MainActivity里用startService和stopService即可控制另一個(gè)程序的Service

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用


二、通過一個(gè)App綁定另一個(gè)App的Service

在上面一的基礎(chǔ)上,在被調(diào)用的App里新建一個(gè)AIDL文件

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

在被調(diào)用服務(wù)類里重新onBind方法,返回值實(shí)現(xiàn)了剛才新建的AIDL文件產(chǎn)生的接口的方法

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

在調(diào)用的MainActivity里,同之前學(xué)習(xí)的Service通信,用bindService和unbindService方法來實(shí)現(xiàn),當(dāng)然還要實(shí)現(xiàn)onServiceConnected和onServiceDisconnected兩個(gè)方法,可以看我之前的博客

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用


三、同步數(shù)據(jù)到綁定的Service中

1)在AIDL創(chuàng)建的接口中再寫一個(gè)方法setData,在MyService中實(shí)現(xiàn)

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

2)在調(diào)用的App里需要?jiǎng)?chuàng)建和被調(diào)用的AIDL文件一樣的文件

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

3)在調(diào)用的App的MainActivity種創(chuàng)建一個(gè)AIDL文件的類的binder

IAppServiceRemoteBinder binder=null;

4)在onServiceConnected方法中將binder與service聯(lián)系起來

【學(xué)習(xí)筆記】AIDL跨應(yīng)用Service運(yùn)用

用binder.setData方法將數(shù)據(jù)傳入binder完成通信

binder.setData(edt.getText().toString());


向AI問一下細(xì)節(jié)

免責(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)容。

AI