【android】AIDL傳遞自定義類型參數

        Aidl默認支持的類型包話java基本類型(int、long、boolean等)和(String、List、Map、CharSequence),如果要傳遞自定義類型,首先要讓自定義類型支持parcelable協議,實現步驟如下:
1>自定義類型必須實現Parcelable接口,並且實現Parcelable接口的public void writeToParcel(Parcel dest, int flags)方法 。

2>自定義類型中必須含有一個名稱爲CREATOR的靜態成員,該成員對象要求實現Parcelable.Creator接口及其方法。

3> 創建一個aidl文件聲明你的自定義類型。

Parcelable接口的作用:實現了Parcelable接口的實例可以將自身的狀態信息(狀態信息通常指的是各成員變量的值)寫入Parcel,也可以從Parcel中恢復其狀態。 Parcel用來完成數據的序列化傳遞。


首先,自定義一個類



public interface Callback extends Parcelable {
	/*
	 * 返回信息
	 */
	public void SetMessage(String res);

	
	public static final Parcelable.Creator<Callback> CREATOR = new Parcelable.Creator<Callback>() {

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

		@Override
		public Callback createFromParcel(Parcel source) {
			// TODO Auto-generated method stub
			return null;
		}
	};
}


其次,在自定義類型所在包下創建一個aidl文件對自定義類型進行聲明,文件的名稱與自定義類型同名。
package com.***;
parcelable Callback; 

再次,在要接口的aidl中註明

 void getMessage(String mum,inCallback obj);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章