語言

Parcel 類別

定義

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

[Android.Runtime.Register("android/os/Parcel", DoNotGenerateAcw=true)]
public sealed class Parcel : Java.Lang.Object
[<Android.Runtime.Register("android/os/Parcel", DoNotGenerateAcw=true)>]
type Parcel = class
    inherit Object
繼承
屬性

備註

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。 一個 Parcel 可以包含在 IPC 另一端會恢復扁平化的資料(使用這裡的各種寫入特定類型或通用 Parcelable 介面的方法),以及對活物件 IBinder 的參考,這些資料會讓對方接收與 Parcel 中原始 IBinder 相關的代理 IBinder。

Parcel 是 <強>的,不</強> 的是一種通用的序列化機制。 此類別(以及將任意物件放入 Parcel 的相應 Parcelable API)被設計為高效能的 IPC 傳輸。 因此,將任何 Parcel 資料放入持久儲存是不適當的:若 Parcel 資料的底層實作有變更,可能會使舊資料無法讀取。

Parcel API 的大部分內容圍繞著各種類型的資料讀寫。 此類函數主要分為六大類。

<h3>原始體</h3>

最基本的資料函式用於寫入和讀取原始資料型態:#writeByte, #readByte, #writeDouble#readDouble#writeFloat#readFloat#writeInt#readInt#writeLong#readLong#writeString, 。 #readString 大多數其他資料操作都是建立在這些基礎之上。 所給資料是根據主機 CPU 的長度來寫入和讀取的。

<h3>原始陣列</h3>

有多種方法可以讀寫原始物件的原始陣列,通常會寫入 4 位元組長度,接著是原始資料項目。 讀取方法可以將資料讀入現有陣列,或建立並回傳新的陣列。 這些可用類型包括:

<ul><li>#writeBooleanArray(boolean[]), #readBooleanArray(boolean[]), #createBooleanArray()<>#writeByteArray(byte[])li, #writeByteArray(byte[], int, int)#readByteArray(byte[]), li#createByteArray()<>#writeCharArray(char[]), #readCharArray(char[]), li, , #createCharArray()<>#writeDoubleArray(double[])li, , #readDoubleArray(double[])#createDoubleArray()<>#writeFloatArray(float[])#readFloatArray(float[])#createFloatArray()<>#writeIntArray(int[])#readIntArray(int[])#createIntArray()<>li, #writeLongArray(long[]), li, , li, #readLongArray(long[])#createLongArray()<>#writeStringArray(String[])#readStringArray(String[])#createStringArray(), . <李>#writeSparseBooleanArray(SparseBooleanArray), #readSparseBooleanArray()。 </ul>

<h3>可包裹/<h3>

該 Parcelable 協定提供一種極為高效(但低階)的協定,讓物件能從 Parcels 中寫入與讀取。 你可以用直接方法 #writeParcelable(Parcelable, int) 和 或 #readParcelable(ClassLoader)#writeParcelableArray 和 來 #readParcelableArray(ClassLoader) 寫作或閱讀。 這些方法會將類別類型及其資料寫入 Parcel,允許在後續讀取時從適當的類別載入器重建該類別。

還有一些方法提供更有效率的 Parcelables 處理方式:、#writeTypedObject、#writeTypedArray#writeTypedList#readTypedObject#createTypedArray#createTypedArrayList、 、 。 這些方法不會寫入原始物件的類別資訊:讀取函式的呼叫者必須知道該期待並傳遞適當的 Parcelable.Creator Parcelable.Creator 類型,才能正確建構新物件並讀取其資料。 (若想更有效率地寫入並讀取非空的單一 Parcelable 物件,你可以直接呼叫 Parcelable#writeToParcel Parcelable.writeToParcel 和 Parcelable.Creator#createFromParcel Parcelable.Creator.createFromParcel 自己。)

<h3>組合</h3>

一種特殊的 Bundle型別安全容器稱為 ,可用於異質值的鍵值映射。 此系統有許多優化以提升讀寫資料的效能,且其型別安全 API 避免了在將資料內容編入 Parcel 時出現難以除錯的型別錯誤。 使用方法分別為 #writeBundle(Bundle)、 #readBundle()、 #readBundle(ClassLoader)和 。

<h3>主動物件</h3>

Parcel 的一個特殊功能是能夠讀取和寫入主動物件。 對於這些物件,物件的實際內容不會被寫入,而是寫入一個特殊的標記來參考該物件。 從 Parcel 讀取物件時,你不會得到該物件的新實例,而是會得到一個對原本寫入物件完全相同的 handle 操作。 有兩種形式的主動物體。

Binder 物件是 Android 通用跨程序通訊系統的核心功能。 介面 IBinder 描述一個抽象協定,包含 Binder 物件。 任何此類介面都可以寫入 Parcel,讀取後你會收到實作該介面的原始物件,或是一個特殊的代理實作,該實作會回傳給原始物件。 可用的#writeStrongBinder(IBinder)方法是 , #writeStrongInterface(IInterface), #readStrongBinder(), 。 #writeBinderArray(IBinder[])#readBinderArray(IBinder[])#createBinderArray()#writeInterfaceArray(T[])#readInterfaceArray(T[], Function)#createInterfaceArray(IntFunction, Function)#writeBinderList(List)#readBinderList(List)#createBinderArrayList()#writeInterfaceList(List)#readInterfaceList(List, Function)#createInterfaceArrayList(Function)

FileDescriptor 物件,代表原始的 Linux 檔案描述符識別碼,可以被寫入並 ParcelFileDescriptor 回傳物件以操作原始檔案描述符。 回傳的檔案描述符是原始檔案描述符的重複版本:物件與 fd 不同,但操作於相同的底層檔案串流,位置相同,等等。使用方法為 #writeFileDescriptor(FileDescriptor), #readFileDescriptor()。

<h3>可包裹容器</h3>

最後一類方法用於撰寫和讀取任意型別的標準 Java 容器。 這些方法都#writeValue(Object)#readValue(ClassLoader)圍繞著定義允許的物件類型。 容器方法包括 #writeArray(Object[])、 #readArray(ClassLoader)、 #writeList(List)#readList(List, ClassLoader)#readArrayList(ClassLoader)#writeMap(Map)#readMap(Map, ClassLoader)#writeSparseArray(SparseArray)#readSparseArray(ClassLoader)。

<h3>受限包裹貨櫃</h3>

最後一類方法用於讀取受限型別的標準 Java 容器。 這些方法取代了從 Android Build.VERSION_CODES#TIRAMISU開始的前一節中任意型態容器的讀取方法。 配對寫作方法仍與前一節相同。 這些方法接受額外的 clazz 參數作為所需類型。 受限可包裹容器方法分別為 #readArray(ClassLoader, Class)、 #readList(List, ClassLoader, Class)、 #readArrayList(ClassLoader, Class)#readMap(Map, ClassLoader, Class, Class)#readSparseArray(ClassLoader, Class)、 , 。

Java 文件 android.os.Parcel。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
HasFileDescriptors

報告該包裹是否包含任何編組檔案描述符。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
JniPeerMembers

提供此類型的 JNI 同儕成員元資料。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
StringCreator

取得 StringCreator 的值。

ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)
ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

(繼承來源 Object)

方法

名稱 Description
AppendFrom(Parcel, Int32, Int32)

附加來自其他包裹的資料。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
CreateBinderArray()

從這個 parcel 建立綁定器陣列值。

CreateBinderArrayList()

讀取並回傳一個新的 ArrayList,包含 IBinder 物件,該 parcel 在當前 dataPosition() 處寫 #writeBinderList 入。

CreateBooleanArray()

從這個 parcel 建立布林陣列值。

CreateByteArray()

讀取並回傳一個位元組物件。

CreateCharArray()

從這個 parcel 建立 char 陣列值。

CreateDoubleArray()

從這個 parcel 建立 double 陣列值。

CreateFixedArray(Class, IFunction, Int32[])

讀取並回傳一個新的多維型態介面陣列,從 parcel 中。

CreateFixedArray(Class, Int32[])

從一個包裹讀取並回傳一個新的多維陣列。

CreateFixedArray(Class, IParcelableCreator, Int32[])

讀取並回傳一個新的多維類型 parcelables 陣列。 若先前寫入的陣列物件為空,則回傳 null。 如果你想讀取 IInterface 的值,請使用 createFixedArray(Class, Function, int[]) 。 對於其他類型值,請使用 createFixedArray(Class,int[]) 。

CreateFloatArray()

從這個 parcel 建立浮點陣列值。

CreateIntArray()

從這個 parcel 建立整數陣列值。

CreateInterfaceArray(IIntFunction, IFunction)

從包裹中讀取並回傳新的 T(內面)陣列。

CreateInterfaceArrayList(IFunction)

讀取並回傳一個包含 T(內面)物件的新 ArrayList,該物件來自當前 dataPosition() 處的 #writeInterfaceList parcel。

CreateLongArray()

從這個 parcel 建立長陣列值。

CreateStringArray()

從這個 parcel 建立字串陣列值。

CreateStringArrayList()

讀取並回傳一個新的 ArrayList,包含來自 parcel 的 String 物件,該物件在當前 dataPosition() 處被寫 #writeStringList 入。

CreateTypedArray(IParcelableCreator)

讀取並回傳包含特定物件類型的新陣列,位於當前 dataPosition()。

CreateTypedArrayList(IParcelableCreator)

讀取並回傳一個新的 ArrayList,包含特定物件類型的 parcel,該 #writeTypedList ArrayList 是寫入當前 dataPosition()。

CreateTypedArrayMap(IParcelableCreator)

讀取到一個新字 ArrayMap 串鍵,包含特定物件類型的項目,這些項目在當前 dataPosition() 處被寫 #writeTypedArrayMap(ArrayMap, int) 入。

CreateTypedSparseArray(IParcelableCreator)

讀取到包含特定物件類型的新 SparseArray 項目,這些項目在當前 dataPosition() 上被寫 #writeTypedSparseArray(SparseArray, int) 入。

DataAvail()

回傳該包裹中剩餘資料量。

DataCapacity()

回傳地塊內的總空間。

DataPosition()

回傳包裹資料中的當前位置。

DataSize()

回傳包裹中包含的總資料量。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
EnforceInterface(String)

讀取 writeInterfaceToken 所寫的標頭,並確認其與相關介面名稱相符。

EnforceNoDataAvail()

確認包裹上沒有剩餘的位元組可讀取。

Equals(Object)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
InvokeHasFileDescriptors(Int32, Int32)

報告該區塊是否包含由 和 offset定義length的範圍內的任何編組檔案描述符。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Marshall()

回傳該 parcel 的原始位元組。

Marshall(ByteBuffer)

將 parcel 的原始位元組寫入緩衝區。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Obtain()

從池中取出一個新的 Parcel 物件。

Obtain(IBinder)

從池中取出一個新的 Parcel 物件,用於特定的綁定器。

ReadArray(ClassLoader, Class)

和 一樣 #readArray(ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadArray(ClassLoader)

從 parcel 讀取並回傳一個新的 Object 陣列,位於當前 dataPosition()。

ReadArrayList(ClassLoader, Class)

和 一樣 #readArrayList(ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadArrayList(ClassLoader)

從 parcel 讀取並回傳一個新的 ArrayList 物件,位於目前的 dataPosition()。

ReadBinderArray(IBinder[])

讀取這個 parcel 的 binder 陣列值。

ReadBinderList(IList<IBinder>)

讀取給定的清單項目 IBinder 物件,這些物件是用 reportPosition() 寫入 #writeBinderList 的。

ReadBlob()

從 parcel 讀取一大塊資料,然後以位元組陣列的形式回傳。

ReadBoolean()

從 parcel 讀取當前 dataPosition() 的布林值。

ReadBooleanArray(Boolean[])

讀取這個 parcel 的布林陣列值。

ReadBundle()

讀取並回傳當前 dataPosition() 的 parcel 中的一個新的 Bundle 物件。

ReadBundle(ClassLoader)

從當前 dataPosition() 讀取並回傳 parcel 中的一個新 Bundle 物件,使用指定的類別載入器初始化該 Bundle 的類別載入器,以便日後擷取 Parcelable 物件。

ReadByte()

從 parcel 讀取當前 dataPosition() 的位元組值。

ReadByteArray(Byte[])

從 parcel 讀取一個位元組物件,並將其複製到指定的位元組陣列中。

ReadCharArray(Char[])

讀取這個 parcel 的 char 陣列值。

ReadDouble()

從目前的資料區塊讀取一個雙精度浮點數值。

ReadDoubleArray(Double[])

讀取這個包裹的雙陣列值。

ReadException()

特殊功能用於讀取 parcel 標頭的例外結果,並在收到交易結果後使用。

ReadException(Int32, String)

拋出一個包含該訊息的例外。

ReadFileDescriptor()

從 parcel 讀取 FileDescriptor ,地址為 current dataPosition()。

ReadFixedArray(Object, IFunction)

從一個 parcel 讀取一個新的多維類型介面陣列。

ReadFixedArray(Object, IParcelableCreator)

從一個 parcel 讀取一個新的多維 parcelables 類型陣列。 如果你想讀取 IInterface 的值,請使用 readFixedArray(Object,Function)。 其他類型的值請使用 readFixedArray(Object) 。

ReadFixedArray(Object)

從包裹中讀取新的多維陣列。

ReadFloat()

從 parcel 讀取浮點數值,位於當前 dataPosition()。

ReadFloatArray(Single[])

讀取這個 parcel 的浮點數陣列值。

ReadHashMap(ClassLoader, Class, Class)

與 相同 #readHashMap(ClassLoader) ,但接受 clazzKey 和 clazzValue 參數作為每個鍵值對所需的類型。

ReadHashMap(ClassLoader)

請改用 #readBundle(ClassLoader) (其資料必須以 #writeBundle.

ReadInt()

從 parcel 讀取當前 dataPosition() 的整數值。

ReadIntArray(Int32[])

讀取此 parcel 的整數陣列值。

ReadInterfaceArray(Object[], IFunction)

從一個包裹讀取一個 T(內面)陣列。

ReadInterfaceList(IList, IFunction)

讀取了在當前 dataPosition() 上用 List() 寫入的 #writeInterfaceList List 項目 IInterface 物件。

ReadList(IList, ClassLoader, Class)

和 一樣 #readList(List, ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadList(IList, ClassLoader)

從 parcel 讀取現有的 List 物件,位於目前的 dataPosition(),使用指定的類別載入器載入任何封閉的 Parcelables。

ReadLong()

從當前 dataPosition() 處讀取該包裹的長整數值。

ReadLongArray(Int64[])

讀取此包裹的長陣列值。

ReadMap(IDictionary, ClassLoader, Class, Class)

與 相同 #readMap(Map, ClassLoader) ,但接受 clazzKey 和 clazzValue 參數作為每個鍵值對所需的類型。

ReadMap(IDictionary, ClassLoader)

請改用 #readBundle(ClassLoader) (其資料必須以 #writeBundle.

ReadParcelable(ClassLoader, Class)

和 一樣 #readParcelable(ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadParcelable(ClassLoader)

閱讀並從包裹中退回新的可包裹件。

ReadParcelableArray(ClassLoader, Class)

和 一樣 #readParcelableArray(ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadParcelableArray(ClassLoader)

讀取並從包裹中返回新的可包裹陣列。

ReadParcelableCreator(ClassLoader, Class)

與 readParcelableCreator(ClassLoader) 相同,但接受 clazz 參數作為必要的類型。

ReadParcelableCreator(ClassLoader)

閱讀並退回包裹。

ReadParcelableList(IList, ClassLoader, Class)

和 一樣 #readParcelableList(List, ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadParcelableList(IList, ClassLoader)

將當前資料位置的物件清單 Parcelable 讀入給定 list的 。

ReadPersistableBundle()

讀取並回傳當前 dataPosition() 的 parcel 中的一個新的 Bundle 物件。

ReadPersistableBundle(ClassLoader)

從當前 dataPosition() 讀取並回傳 parcel 中的一個新 Bundle 物件,使用指定的類別載入器初始化該 Bundle 的類別載入器,以便日後擷取 Parcelable 物件。

ReadSerializable()

讀取並從 parcel 中回傳一個新的 Serializable 物件。

ReadSerializable(ClassLoader, Class)

和一樣 #readSerializable() ,但接受 loader 參數 clazz 和參數。

ReadSize()

從 parcel 讀取 Size ,位於目前 dataPosition()。

ReadSizeF()

從目前資料 dataPosition() 處讀取 parcel 中的 SizeF。

ReadSparseArray(ClassLoader, Class)

和 一樣 #readSparseArray(ClassLoader) ,但接受 clazz 參數作為每個項目所需的類型。

ReadSparseArray(ClassLoader)

讀取並回傳一個新的 SparseArray 物件,位於目前的 dataPosition()。

ReadSparseBooleanArray()

讀取並回傳當前 dataPosition() 的 parcel 中的 SparseBooleanArray 物件。

ReadString()

從 parcel 讀取當前 dataPosition() 的字串值。

ReadStringArray(String[])

讀取這個 parcel 的字串陣列值。

ReadStringList(IList<String>)

在給定的清單項目中讀取了在當前 dataPosition() 處寫入的 #writeStringList 字串物件。

ReadStrongBinder()

從 parcel 讀取當前 dataPosition() 的物件。

ReadTypedArray(Object[], IParcelableCreator)

讀取這個 parcel 的類型陣列值。

ReadTypedList(IList, IParcelableCreator)

讀取包含特定物件類型的清單項目,這些項目在目前的 dataPosition() 上被寫 #writeTypedList 入。

ReadTypedObject(IParcelableCreator)

讀取並回傳一個已輸入的 Parcelable 物件。

ReadValue(ClassLoader)

讀取包裹中的類型物件。

Recycle()

把包裹物品放回池子裡。

SetDataCapacity(Int32)

更改地塊的容量(目前可用空間)。

SetDataPosition(Int32)

移動包裹中目前的讀寫位置。

SetDataSize(Int32)

改變包裹中的資料量。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
SetPropagateAllowBlocking()

此方法被 AIDL 編譯器用於系統元件。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
Unmarshall(Byte[], Int32, Int32)

用所提供的資料填滿該 Parcel 的原始位元組。

Unmarshall(ByteBuffer)

用所提供緩衝區的資料填滿此 Parcel 的原始位元組。

UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
WriteArray(Object[])

如有需要,將物件陣列壓扁成 parcel,位於目前的 dataPosition(), 成長 dataCapacity() 中。

WriteBinderArray(IBinder[])

將綁定器陣列值寫入此 parcel。

WriteBinderList(IList<IBinder>)

將包含 IBinder 物件的清單平整成該區塊,並以當前 dataPosition() 並成長 dataCapacity() 進行。

WriteBlob(Byte[], Int32, Int32)

如果需要,將一塊資料寫入該區塊,且在當前 #dataPosition成長 #dataCapacity 的狀態下。

WriteBlob(Byte[])

如果需要,將一塊資料寫入該區塊,且在當前 #dataPosition成長 #dataCapacity 的狀態下。

WriteBoolean(Boolean)

如有需要,將布林值寫入 parcel 中當前 dataPosition(), 成長中的 dataCapacity() 值。

WriteBooleanArray(Boolean[])

將布林陣列值寫入此 parcel。

WriteBundle(Bundle)

如有需要,將 Bundle 平整成目前 dataPosition(), 成長中的 dataCapacity() 的地塊。

WriteByte(SByte)

如有需要,將目前 dataPosition(), growing dataCapacity() 的位元組值寫入該區塊。

WriteByteArray(Byte[], Int32, Int32)

如果需要,可以在 目前 #dataPosition的 、正在成長 #dataCapacity 的 parcel 寫入一個位元組陣列。

WriteByteArray(Byte[])

如果需要,可以在 目前 #dataPosition的 、正在成長 #dataCapacity 的 parcel 寫入一個位元組陣列。

WriteCharArray(Char[])

將 char 陣列值寫入此 parcel。

WriteDouble(Double)

如有需要,將雙精度浮點數值寫入 parcel 中當前 dataPosition(), 成長中的 dataCapacity() 值。

WriteDoubleArray(Double[])

將 double array 值寫入此 parcel。

WriteException(Exception)

特殊功能用於在 parcel 標頭寫出例外結果,用於回傳交易的例外。

WriteFileDescriptor(FileDescriptor)

如有需要,可在目前的 dataPosition(), growing dataCapacity() 處寫入 FileDescriptor。

WriteFixedArray(Object, Int32, Int32[])

將一個大小固定的齊次多維陣列壓平。

WriteFloat(Single)

如有需要,可在 parcel 中寫入浮點值,當前 dataPosition(), 成長中的 dataCapacity()

WriteFloatArray(Single[])

將浮點數陣列值寫入此 parcel。

WriteInt(Int32)

如有需要,在 parcel 的當前 dataPosition(), 成長 dataCapacity() 處寫入整數值。

WriteIntArray(Int32[])

將整數陣列值寫入此 parcel。

WriteInterfaceArray(Object[])

將包含 IInterface 類型的同質陣列平整化到該 parcel 中,並以當前 dataPosition() 進行,必要時則在 dataCapacity() 成長。

WriteInterfaceList(IList)

將一個 List 包含 T(內向)物件的物件壓平成該區域,位於當前位置。

WriteInterfaceToken(String)

在目前 #dataPosition的 parcel 中儲存或讀取 IBinder 介面令牌。

WriteList(IList)

如有需要,將清單平整成目前 dataPosition(), 的 parcel,並以 growingingdataCapacity() 進行。

WriteLong(Int64)

如有需要,可在目前 dataPosition(), growing dataCapacity() 處寫入一個長整數值。

WriteLongArray(Int64[])

將長陣列值寫入此區塊。

WriteMap(IDictionary)

請改用 #writeBundle。

WriteNoException()

特殊功能用於在包裹前方寫入資訊,表示未發生例外。

WriteParcelable(IParcelable, ParcelableWriteFlags)

將可包裹物類別名稱及其內容物的名稱平整化成包裹。

WriteParcelableArray(Object[], ParcelableWriteFlags)

在 Parcel 中寫入一個異質的 Parcelable 物件陣列。

WriteParcelableCreator(IParcelable)

將可包裹車類別的名稱平整成此區塊。

WriteParcelableList(IList, Int32)

將包含任意List物件的一個在當前位置的Parcelable物件壓平成此區塊。

WritePersistableBundle(PersistableBundle)

必要時將 PersistableBundle 平整成目前 dataPosition(), 的 parcel,並以 growing dataCapacity() 進行。

WriteSerializable(ISerializable)

在 Parcel 中寫入一個通用可序列化的物件。

WriteSize(Size)

如有需要,在目前 dataPosition(), 成長 dataCapacity() 時,將 Size 平整化到該包裹中。

WriteSizeF(SizeF)

如有需要,將 SizeF 平整成目前 dataPosition(), 的 parcel,並以 growingingdataCapacity() 進行。

WriteSparseArray(SparseArray)

如果需要,將一個通用的 SparseArray 平整成目前 dataPosition(), 正在成長的 dataCapacity() 的 parcel。

WriteSparseBooleanArray(SparseBooleanArray)

將這個 parcel 的稀疏布林陣列值寫入。

WriteString(String)

如有需要,將字串值寫入 parcel 中當前 dataPosition(), growing dataCapacity() 的值。

WriteStringArray(String[])

將字串陣列值寫入此 parcel。

WriteStringList(IList<String>)

將包含字串物件的清單平整成 parcel,並於當前 dataPosition() 處(如有需要)成長 dataCapacity() 時進行。

WriteStrongBinder(IBinder)

如有需要,可在 parcel 中寫入物件,目前為 dataPosition(), growing dataCapacity()。

WriteStrongInterface(IInterface)

如有需要,可在 parcel 中寫入物件,目前為 dataPosition(), growing dataCapacity()。

WriteTypedArray(Object[], ParcelableWriteFlags)

將包含特定物件類型的同質陣列平整成該區塊,並在當前 dataPosition() 處進行,必要時則在 dataCapacity() 成長。

WriteTypedArrayMap(ArrayMap, Int32)

將包含特定物件類型的字串鍵的 a ArrayMap 平整化到目前 dataPosition() 的 parcel 中,若需要則需增加 dataCapacity() 的 。

WriteTypedList(IList, ParcelableWriteFlags)

在目前的 dataPosition() 處,並將包含特定物件類型的清單平整化到該 parcel 中,並在需要時增加 dataCapacity() 的狀態。

WriteTypedList(IList)

在目前的 dataPosition() 處,並將包含特定物件類型的清單平整化到該 parcel 中,並在需要時增加 dataCapacity() 的狀態。

WriteTypedObject(Object, ParcelableWriteFlags)

將可包裹物件壓扁成包裹。

WriteTypedSparseArray(SparseArray, Int32)

將包含特定物件類型的 a SparseArray 扁平化到目前 dataPosition() 的 parcel 中,若需要則是 growingdataCapacity()。

WriteValue(Object)

把一個通用物件壓扁成一個包裹。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一個容器,可透過 IBinder 傳送訊息(資料與物件參考)。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於