Android AIDL引用自定义对象

来源:互联网 发布:龙珠直播工资怎么算法 编辑:程序博客网 时间:2024/06/15 17:28

有时候AIDL机制在传输数据时,传输的并非是简单的基本类型,而是要涉及到复杂的数据类型,这时候就需要重写这个对象的readFromParcel和writeToParcel和函数,具体定义如下:

People.java

package com.rmt.bluetooth.audio.aidl;


import android.os.Parcel;
import android.os.Parcelable;


public class People implements Parcelable{
public String phonenum;
public String name;

public People(String phonenum, String name) {
this.phonenum = phonenum;
this.name     = name;
}
public static final Parcelable.Creator<People>
CREATOR = new Parcelable.Creator<People>()  
  {  
       public People createFromParcel(Parcel in)  
       {  
           return new People(in);  
       }  
 
      public People[] newArray(int size)  
       {  
           return new People[size];   
       }  
   };  
   public People()  
     {  
      }  
       private People(Parcel in)  
     {  
          readFromParcel(in);  
       }
@Override
public int describeContents() {
return 0;
}
public void readFromParcel(Parcel in)  
   {  
phonenum = in.readString();  
      name = in.readString();  
   }  
@Override
public void writeToParcel(Parcel arg0, int arg1) {
arg0.writeString(phonenum);  
arg0.writeString(name);  
}
}




并且这个类文件也需要放到客户端源码的相同对应路径下。下面就可以自由的传输People类型对象了。


People.aidl

package com.rmt.bluetooth.audio.aidl;
import com.rmt.bluetooth.audio.aidl.People;
parcelable People;

0 0
原创粉丝点击