亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Android進階AIDL使用自定義類型

發布時間:2020-06-20 23:36:34 來源:網絡 閱讀:460 作者:零點小筑 欄目:移動開發

原文首發于微信公眾號:jzman-blog

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

  1. 創建自定義類型
  2. 聲明自定義類型
  3. 定義與自定義類型相關的業務
  4. 重寫業務實體類
  5. 遠程調用
  6. 驗證 AIDL
1. 創建自定義類型

自定義類型傳輸的就是一個實體對象,這個實體類必須實現 Parcelable 接口,具體如下:

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

創建一個 .aidl 文件聲明剛才定義的類型,注意與具體業務 .aidl 文件的不同,聲明具體如下:

// 在.aidl文件中聲明自定義類型
package com.manu.aidldemo;
parcelable Work;
3. 定義與自定義類型相關的業務

在定義具體業務的 .aidl 文件中定義與自定義類型相關的業務,具體如下:

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

注意:導入自定義類型,否則不識別。

4. 重寫業務實體類

由于新增了具體業務,也就是 getWorkInfo() ,需要具體業務類里面實現具體的業務,具體如下:

//新增自定義類型相關的業務
@Override
public Work getWorkInfo() throws RemoteException {
    Work work = new Work();
    work.setTitle("學習AIDL");
    work.setContent("Android developer");
    return work;
}
5. 遠程調用

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

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清新县| 云安县| 广平县| 乌兰县| 新河县| 湟源县| 汤阴县| 根河市| 绥德县| 泰顺县| 察隅县| 南平市| 定襄县| 嘉祥县| 沙河市| 通城县| 台东市| 桓台县| 茂名市| 东乌珠穆沁旗| 彭州市| 神木县| 视频| 保定市| 梨树县| 鹿邑县| 平邑县| 醴陵市| 浦江县| 深泽县| 海晏县| 自贡市| 北宁市| 措勤县| 山东省| 白山市| 孙吴县| 贵港市| 贺州市| 岫岩| 铜山县|