真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android進(jìn)階AIDL使用自定義類型-創(chuàng)新互聯(lián)

原文首發(fā)于微信公眾號:jzman-blog

為沙河等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及沙河網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、沙河網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

上篇文章 中主要介紹從 AIDL 的使用方式以及 Android 開發(fā)中不同進(jìn)程之間的通信,遺留的問題是如何在 AIDL 中使用自定義類型,具體步驟如下:

  1. 創(chuàng)建自定義類型
  2. 聲明自定義類型
  3. 定義與自定義類型相關(guān)的業(yè)務(wù)
  4. 重寫業(yè)務(wù)實體類
  5. 遠(yuǎn)程調(diào)用
  6. 驗證 AIDL
1. 創(chuàng)建自定義類型

自定義類型傳輸?shù)木褪且粋€實體對象,這個實體類必須實現(xiàn) Parcelable 接口,具體如下:

// 自定義類型
public class Work implements Parcelable {
    private String title;
    private String content;
    // getter、setter、Parcelable 省略
}
2. 聲明自定義類型

創(chuàng)建一個 .aidl 文件聲明剛才定義的類型,注意與具體業(yè)務(wù) .aidl 文件的不同,聲明具體如下:

// 在.aidl文件中聲明自定義類型
package com.manu.aidldemo;
parcelable Work;
3. 定義與自定義類型相關(guān)的業(yè)務(wù)

在定義具體業(yè)務(wù)的 .aidl 文件中定義與自定義類型相關(guān)的業(yè)務(wù),具體如下:

// Declare any non-default types here with import statements
import com.manu.aidldemo.Work; //注意
interface IPersonAidlInterface {
    //定義與自定義類型相關(guān)的業(yè)務(wù)
   work getWorkInfo();
    void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat,
            double aDouble, String aString);
}

注意:導(dǎo)入自定義類型,否則不識別。

4. 重寫業(yè)務(wù)實體類

由于新增了具體業(yè)務(wù),也就是 getWorkInfo() ,需要具體業(yè)務(wù)類里面實現(xiàn)具體的業(yè)務(wù),具體如下:

//新增自定義類型相關(guān)的業(yè)務(wù)
@Override
public Work getWorkInfo() throws RemoteException {
   work work = new Work();
   work.setTitle("學(xué)習(xí)AIDL");
   work.setContent("Android developer");
    return work;
}
5. 遠(yuǎn)程調(diào)用

綁定 Service 成功之后會得到 IBinder 對象,然后通過 asInterface() 獲取到 IPersonAidlInterface 對象就可以調(diào)用了,具體如下:

public void callRemoteClick(View view) {
    Log.i(TAG,"遠(yuǎn)程調(diào)用具體服務(wù)...");
    try {
        //遠(yuǎn)程調(diào)用
       work work = iPersonAidlInterface.getWorkInfo();
        System.out.println("這是遠(yuǎn)程調(diào)用的服務(wù)信息:title="+work.getTitle()+",content="+work.getContent());
    } catch (RemoteException e) {
        e.printStackTrace();
    }
}
6. 驗證 AIDL

日志運行截圖如下:
Android進(jìn)階AIDL使用自定義類型

使用流程實際上在上篇文章中已經(jīng)闡述清楚了,這篇貌似有點多余,不過算是對過去知識的總結(jié)吧!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享標(biāo)題:Android進(jìn)階AIDL使用自定義類型-創(chuàng)新互聯(lián)
文章分享:http://weahome.cn/article/ppocs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部