aidl的基本使用--在不同app之间通信

本文详细介绍了如何使用AIDL在Android的不同应用程序之间进行通信。首先讲解了服务端的设置,包括创建Fruit.java实现Parcelable,定义aidl文件如IFruitManager.aidl,并在清单文件注册FruitService。接着阐述了客户端如何绑定服务,获取aidl对象,监听服务端数据变化,以及查询和添加水果的操作。最后提到了在实际运行中可能遇到的bug及其解决方法。
摘要由CSDN通过智能技术生成

一、将第一个app,当做服务端

 

(一)创建Fruit.java文件,

在com.example.settinglib包下

实现Parcelable ,只有序列化的数据,才能在进程间传递

 

public class Fruit implements Parcelable {
    private String mName ;
    private int mNumber;

    public Fruit(Parcel source) {
        mName = source.readString();
        mNumber = source.readInt();
    }

    public String getmName() {
        return mName;
    }

    public void setmName(String mName) {
        this.mName = mName;
    }

    public int getmNumber() {
        return mNumber;
    }

    public void setmNumber(int mNumber) {
        this.mNumber = mNumber;
    }

    public Fruit(String name, int number) {
        this.mName = name;
        this.mNumber = number;
    }

    public static final Creator<Fruit> CREATOR = new Creator<Fruit>() {
        @Override
        public Fruit createFromParcel(Parcel in) {
            return new Fruit(in);
        }

        @Override
        public Fruit[] newArray(int size) {
            return new Fruit[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(mName);
        parcel.writeInt(mNumber);
    }


    @Override
    public String toString() {
        return String.format("[mName:%s, mNumber:%s]", mName, mNumber);
    }
}

(二)创建Fruit.aidl文件和IFruitManger.aidl文件

1,在main文件夹下,创建aidl文件。并在aidl文件夹下,创建Fruit.aidl、IFruitManger.aidl、INewFruitAddListener.aidl,   他们的路径和Fruit.java  文件相同

2,aidl文件都尽量放在一个路径下,这样便于拷贝到客户端app使用。

客户端拷贝过去的aidl文件和实现了Parcelable的java文件,其路径要和服务端的一模一样。否则会报错。(无法反序列化)

 

1,Fruit.aidl

表示实现了parcelable序列化

package com.example.settinglib;
parcelable Fruit;

2,IFruitManger.aidl

import com.example.settinglib.Fruit;   这行代码是自己手动输入的
import com.example.settinglib.INewFruitAddListener; 这行代码是自己手动输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值