W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---ohos.utils.Parcel
|---|---ohos.rpc.MessageParcel
public class MessageParcel
extends Parcel
繼承自 Parcel 類并提供管理 MessageParcel 對(duì)象的方法。
此類提供讀寫對(duì)象、接口令牌、文件描述符和大數(shù)據(jù)的方法。
修飾符和類型 | 方法 | 描述 |
---|---|---|
static void | closeFileDescriptor(FileDescriptor descriptor) | 禁用 MessageParcel 中的文件描述符。 |
boolean | containFileDescriptors() | 檢查此 MessageParcel 對(duì)象是否包含文件描述符。 |
static MessageParcel | create() | 創(chuàng)建一個(gè) MessageParcel 對(duì)象。 |
static MessageParcel | create(long object) | 創(chuàng)建具有給定指針的 MessageParcel 對(duì)象。 |
IRemoteObject[] | createRemoteObjectArray() | 創(chuàng)建一個(gè) IRemoteObject 對(duì)象數(shù)組。 |
ListIRemoteObject | createRemoteObjectList() | 創(chuàng)建 IRemoteObject 對(duì)象的列表。 |
static int | detachFd(FileDescriptor fileDescriptor) | 從 FileDescriptor 中分離本機(jī) fd。 |
static FileDescriptor | dupFileDescriptor(FileDescriptor descriptor) | 獲得一個(gè)新的文件描述符,它是現(xiàn)有文件描述符的副本。 |
protected void | finalize() | 當(dāng)垃圾收集確定不再有對(duì)該對(duì)象的引用時(shí),由對(duì)象上的垃圾收集器調(diào)用。 |
int | getDataVersion() | 從 MessageParcel 對(duì)象返回?cái)?shù)據(jù)版本。 |
static int | getFd(FileDescriptor fileDescriptor) | 從 FileDescriptor 讀取本機(jī) fd |
static FileDescriptor | getFdFromDatagramSocket(DatagramSocket datagramSocket) | 從 DatagramSocket 讀取 FileDescriptor |
int | getRawDataCapacity() | 獲取 MessageParcel 可以容納的最大原始數(shù)據(jù)量。 |
static MessageParcel | obtain() | 創(chuàng)建一個(gè) MessageParcel 對(duì)象。 |
static MessageParcel | obtain(long object) | 獲取具有給定指針的 MessageParcel 對(duì)象。 |
Ashmem | readAshmem() | 從此 MessageParcel 中讀取 Ashmem 對(duì)象。 |
void | readException() | 從 MessageParcel 中讀取異常。 |
FileDescriptor | readFileDescriptor() | 從 MessageParcel 讀取文件描述符。 |
String | readInterfaceToken() | 從 MessageParcel 讀取接口令牌。 |
byte[] | readRawData(int size) | 從 MessageParcel 讀取原始數(shù)據(jù)。 |
IRemoteObject | readRemoteObject() | 從 MessageParcel 讀取遠(yuǎn)程對(duì)象。 |
void | readRemoteObjectArray(IRemoteObject[] objects) | 從 MessageParcel 中讀取一組 IRemoteObject 對(duì)象。 |
void | readRemoteObjectList(ListIRemoteObject objects) | 從 MessageParcel 中讀取 IRemoteObject 對(duì)象的列表。 |
void | reclaim() | 將 MessageParcel 對(duì)象添加到緩存池。 |
void | updateDataVersion(IRemoteObject object) | 將遠(yuǎn)程對(duì)象數(shù)據(jù)版本更新為 MessageParcel 對(duì)象。 |
boolean | writeAshmem(Ashmem ashmem) | 將指定的 Ashmem 對(duì)象寫入此 MessageParcel。 |
void | writeException(Exception exception) | 將異常寫入 MessageParcel。 |
boolean | writeFileDescriptor(FileDescriptor descriptor) | 序列化文件描述符并將其寫入 MessageParcel。 |
boolean | writeInterfaceToken(String token) | 將接口令牌寫入 MessageParcel 對(duì)象。 |
void | writeNoException() | 不向 MessageParcel 寫入異常。 |
boolean | writeRawData(byte[] rawData, int size) | 將要發(fā)送到遠(yuǎn)程進(jìn)程的原始數(shù)據(jù)寫入 MessageParcel 對(duì)象。 |
boolean | writeRemoteObject(IRemoteObject object) | 序列化遠(yuǎn)程對(duì)象并將其寫入 MessageParcel 對(duì)象。 |
boolean | writeRemoteObjectArray(IRemoteObject[] objects) | 將 IRemoteObject 對(duì)象數(shù)組寫入 MessageParcel。 |
boolean | writeRemoteObjectList(ListIRemoteObject objects) | 將 IRemoteObject 對(duì)象列表寫入 MessageParcel。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
從類 ohos.utils.Parcel 繼承的方法 |
---|
addAppClassLoader, appendFrom, createSequenceable, createSequenceable, createSequenceableArray, flushBuffer, getBytes, getCapacity, getReadableBytes, getReadPosition, getSize, getWritableBytes, getWritePosition, readBoolean, readBooleanArray, readBooleanArray, readByte, readByteArray, readByteArray, readChar, readCharArray, readCharArray, readDouble, readDoubleArray, readDoubleArray, readFloat, readFloatArray, readFloatArray, readInt, readIntArray, readIntArray, readList, readLong, readLongArray, readLongArray, readMap, readPacMapEx, readParcelableEx, readPlainArray, readPlainBooleanArray, readSequenceable, readSequenceableArray, readSequenceableList, readSequenceableMap, readSerializable, readShort, readShortArray, readShortArray, readString, readStringArray, readStringArray, readStringList, readValue, rewindRead, rewindWrite, setCapacity, setSize, writeBoolean, writeBooleanArray, writeByte, writeByteArray, writeBytes, writeChar, writeCharArray, writeDouble, writeDoubleArray, writeFloat, writeFloatArray, writeInt, writeIntArray, writeList, writeLong, writeLongArray, writeMap, writeMap, writePacMapEx, writeParcelableEx, writePlainArray, writePlainBooleanArray, writeSequenceable, writeSequenceableArray, writeSequenceableList, writeSequenceableMap, writeSerializable, writeShort, writeShortArray, writeString, writeStringArray, writeStringList, writeTypedSequenceable, writeTypedSequenceableArray, writeValue |
public static final MessageParcel obtain()
創(chuàng)建一個(gè) MessageParcel 對(duì)象。
返回:
返回創(chuàng)建的 MessageParcel 對(duì)象。
public static final MessageParcel create()
創(chuàng)建一個(gè) MessageParcel 對(duì)象。
返回:
返回創(chuàng)建的 MessageParcel 對(duì)象。
protected void finalize() 拋出 Throwable
從類復(fù)制的描述:對(duì)象
當(dāng)垃圾收集確定不再有對(duì)該對(duì)象的引用時(shí),由對(duì)象上的垃圾收集器調(diào)用。子類覆蓋 finalize 方法以釋放系統(tǒng)資源或執(zhí)行其他清理。
finalize 的一般約定是,當(dāng) Java? 虛擬機(jī)確定不再有任何方法可以讓任何尚未終止的線程訪問此對(duì)象時(shí)調(diào)用它,除非是由于某個(gè)操作由準(zhǔn)備完成的其他對(duì)象或類的完成所采取。 finalize 方法可以采取任何行動(dòng),包括使該對(duì)象再次可供其他線程使用;然而,finalize 的通常目的是在對(duì)象被不可撤銷地丟棄之前執(zhí)行清理操作。例如,代表輸入/輸出連接的對(duì)象的 finalize 方法可能會(huì)執(zhí)行顯式 I/O 事務(wù)以在對(duì)象被永久丟棄之前中斷連接。
Object 類的 finalize 方法不執(zhí)行任何特殊操作;它只是正常返回。 Object 的子類可以覆蓋這個(gè)定義。
Java 編程語言不保證哪個(gè)線程將為任何給定對(duì)象調(diào)用 finalize 方法。但是,可以保證調(diào)用 finalize 的線程在調(diào)用 finalize 時(shí)不會(huì)持有任何用戶可見的同步鎖。如果 finalize 方法拋出未捕獲的異常,則忽略該異常并終止該對(duì)象的終結(jié)。
在為一個(gè)對(duì)象調(diào)用 finalize 方法之后,不會(huì)采取進(jìn)一步的行動(dòng),直到 Java 虛擬機(jī)再次確定沒有任何方法可以讓任何尚未終止的線程訪問該對(duì)象,包括可能的行動(dòng)由其他準(zhǔn)備完成的對(duì)象或類,此時(shí)該對(duì)象可能被丟棄。
對(duì)于任何給定的對(duì)象,Java 虛擬機(jī)永遠(yuǎn)不會(huì)多次調(diào)用 finalize 方法。
finalize 方法拋出的任何異常都會(huì)導(dǎo)致該對(duì)象的終結(jié)被暫停,否則會(huì)被忽略。
覆蓋:
在 Parcel 類中完成
Throws:
Throw名稱 | Throw描述 |
---|---|
Throwable | 此方法引發(fā)的異常 |
public static MessageParcel obtain(long object)
獲取具有給定指針的 MessageParcel 對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
object | 指示 MessageParcel 的地址。 |
返回:
如果在緩存池中找到具有指定索引的 MessageParcel 對(duì)象,則返回該對(duì)象; 如果未找到,則返回具有指定索引的新 MessageParcel 對(duì)象。
public static MessageParcel create(long object)
創(chuàng)建具有給定指針的 MessageParcel 對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
object | 指示 MessageParcel 的地址。 |
返回:
如果在緩存池中找到具有給定指針的 MessageParcel 對(duì)象,則返回該對(duì)象; 如果未找到,則返回具有給定指針的新 MessageParcel 對(duì)象。
public final void reclaim()
將 MessageParcel 對(duì)象添加到緩存池。
此方法用于清除不再使用的 MessageParcel 對(duì)象。
覆蓋:
在類包裹中回收
public void updateDataVersion(IRemoteObject object)
將遠(yuǎn)程對(duì)象數(shù)據(jù)版本更新為 MessageParcel 對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
object | 指示寫入 MessageParcel 的遠(yuǎn)程對(duì)象及其數(shù)據(jù)版本。 |
public int getDataVersion()
從 MessageParcel 對(duì)象返回?cái)?shù)據(jù)版本。
返回:
從 MessageParcel 返回?cái)?shù)據(jù)版本。
public boolean writeRemoteObject(IRemoteObject object)
序列化遠(yuǎn)程對(duì)象并將其寫入 MessageParcel 對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
object | 指示要序列化并寫入 MessageParcel 的遠(yuǎn)程對(duì)象。 |
返回:
如果操作成功,則返回 true; 否則返回 false。
public IRemoteObject readRemoteObject()
從 MessageParcel 讀取遠(yuǎn)程對(duì)象。
此方法用于反序列化 MessageParcel 對(duì)象以生成 IRemoteObject。
遠(yuǎn)程對(duì)象按照它們寫入 MessageParcel 的順序讀取。
返回:
返回 IRemoteObject。
public boolean writeInterfaceToken(String token)
將接口令牌寫入 MessageParcel 對(duì)象。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
token | 表示接口令牌。 |
返回:
如果操作成功,則返回 true; 否則返回 false。
public String readInterfaceToken()
從 MessageParcel 讀取接口令牌。
接口標(biāo)記按照它們寫入 MessageParcel 的順序讀取。
返回:
返回接口令牌。
public boolean writeFileDescriptor(FileDescriptor descriptor)
序列化文件描述符并將其寫入 MessageParcel。
在當(dāng)前版本中,此方法不適用于跨設(shè)備通信。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
descriptor | 指示文件描述符。 |
返回:
如果操作成功,則返回 true; 否則返回 false。
public FileDescriptor readFileDescriptor()
從 MessageParcel 讀取文件描述符。
文件描述符按照它們寫入 MessageParcel 的順序讀取。
在當(dāng)前版本中,此方法不適用于跨設(shè)備通信。
返回:
返回文件描述符。
public boolean writeRawData(byte[] rawData, int size)
將要發(fā)送到遠(yuǎn)程進(jìn)程的原始數(shù)據(jù)寫入 MessageParcel 對(duì)象。
如果遠(yuǎn)程進(jìn)程在當(dāng)前設(shè)備上運(yùn)行,原始數(shù)據(jù)將通過共享內(nèi)存?zhèn)鬏敗?如果遠(yuǎn)程進(jìn)程在對(duì)等設(shè)備上運(yùn)行,則原始數(shù)據(jù)通過套接字等跨設(shè)備通道傳輸。
每個(gè) MessageParcel 只能寫入一組原始數(shù)據(jù)。 在跨設(shè)備情況下,原始數(shù)據(jù)只能按順序發(fā)送。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
rawData | 指示要發(fā)送到遠(yuǎn)程進(jìn)程的原始數(shù)據(jù)。 通過 IPC 最多可以發(fā)送 128 Mb 的原始數(shù)據(jù),在 RPC 情況下最大為 128 Mb - 64byte。 如果數(shù)據(jù)大小大于最大值,則返回 false。 您必須自己管理數(shù)據(jù)內(nèi)存的生命周期。 |
size | 指示要發(fā)送的原始數(shù)據(jù)的大小。 |
返回:
如果操作成功,則返回 true; 否則返回 false。
public byte[] readRawData(int size)
從 MessageParcel 讀取原始數(shù)據(jù)。
要讀取的原始數(shù)據(jù)的大小必須與寫入 MessageParcel 的原始數(shù)據(jù)的大小相同。
原始數(shù)據(jù)按照寫入 MessageParcel 的順序讀取。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
size | 指示要讀取的原始數(shù)據(jù)的大小。 |
返回:
返回原始數(shù)據(jù)(以字節(jié)為單位)。 數(shù)據(jù)內(nèi)存的生命周期必須與 MessageParcel 對(duì)象的生命周期相同。
public int getRawDataCapacity()
獲取 MessageParcel 可以容納的最大原始數(shù)據(jù)量。
返回:
返回 MessageParcel 可以容納的最大原始數(shù)據(jù)量,即 128 Mb。
public static void closeFileDescriptor(FileDescriptor descriptor)
禁用 MessageParcel 中的文件描述符。
在當(dāng)前版本中,此方法不適用于跨設(shè)備通信。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
descriptor | 指示要禁用的文件描述符。 |
public static FileDescriptor dupFileDescriptor(FileDescriptor descriptor)
獲得一個(gè)新的文件描述符,它是現(xiàn)有文件描述符的副本。
新文件描述符的狀態(tài)與現(xiàn)有文件描述符的狀態(tài)相同。
調(diào)用此方法不會(huì)關(guān)閉輸入文件描述符。 您負(fù)責(zé)關(guān)閉返回的新文件描述符。
在當(dāng)前版本中,此方法不適用于跨設(shè)備通信。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
descriptor | 指示現(xiàn)有文件描述符。 |
返回:
返回新的文件描述符。
public boolean containFileDescriptors()
檢查此 MessageParcel 對(duì)象是否包含文件描述符。
在調(diào)用 writeFileDescriptor 或 writeRawData 方法后,MessageParcel 對(duì)象將包含文件描述符。
返回:
如果此 MessageParcel 對(duì)象包含文件描述符,則返回 true; 否則返回 false。
public IRemoteObject[] createRemoteObjectArray()
創(chuàng)建一個(gè) IRemoteObject 對(duì)象數(shù)組。
此方法用于從 MessageParcel 中讀取 IRemoteObject 對(duì)象并創(chuàng)建一個(gè) IRemoteObject 對(duì)象數(shù)組。
返回:
返回 IRemoteObject 對(duì)象的數(shù)組。 陣列的生命周期取決于您的應(yīng)用程序。
public ListIRemoteObject createRemoteObjectList()
創(chuàng)建 IRemoteObject 對(duì)象的列表。
此方法用于從 MessageParcel 中讀取 IRemoteObject 對(duì)象并創(chuàng)建 IRemoteObject 對(duì)象列表。
返回:
返回 IRemoteObject 對(duì)象的列表。 列表的生命周期取決于您的應(yīng)用程序。
public boolean writeRemoteObjectArray(IRemoteObject[] objects)
將 IRemoteObject 對(duì)象數(shù)組寫入 MessageParcel。
您可以使用 createRemoteObjectArray() 或 [readRemoteObjectArray(ohos.rpc.IRemoteObject]) 方法從 MessageParcel 中讀取 IRemoteObject 對(duì)象數(shù)組。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
objects | 指示要寫入 MessageParcel 的 IRemoteObject 對(duì)象數(shù)組。 |
返回:
如果 IRemoteObject 對(duì)象數(shù)組成功寫入 MessageParcel,則返回 true; 如果 objects 為 null 或數(shù)組無法寫入 MessageParcel,則返回 false。
public boolean writeRemoteObjectList(ListIRemoteObject objects)
將 IRemoteObject 對(duì)象列表寫入 MessageParcel。
您可以使用 createRemoteObjectList() 或 readRemoteObjectList(java.util.List) 方法從 MessageParcel 中讀取 IRemoteObject 對(duì)象列表。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
objects | 指示要寫入 MessageParcel 的 IRemoteObject 對(duì)象的列表。 |
返回:
如果 IRemoteObject 對(duì)象列表成功寫入 MessageParcel,則返回 true; 如果 objects 為 null 或列表無法寫入 MessageParcel,則返回 false。
public void readRemoteObjectArray(IRemoteObject[] objects)
從 MessageParcel 中讀取一組 IRemoteObject 對(duì)象。
使用此方法時(shí),您的應(yīng)用程序需要傳遞要從 MessageParcel 中讀取的 IRemoteObject 對(duì)象數(shù)組。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
objects | 指示應(yīng)用程序要從 MessageParcel 中讀取的 IRemoteObject 對(duì)象數(shù)組。 如果此數(shù)組的長度不等于實(shí)際從 MessageParcel 讀取的 IRemoteObject 對(duì)象的數(shù)量,則將返回您的應(yīng)用程序傳遞的 IRemoteObject 對(duì)象數(shù)組。 |
public void readRemoteObjectList(ListIRemoteObject objects)
從 MessageParcel 中讀取 IRemoteObject 對(duì)象的列表。
使用此方法時(shí),您的應(yīng)用程序需要傳遞要從 MessageParcel 中讀取的 IRemoteObject 對(duì)象列表。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
objects | 指示您的應(yīng)用程序要從 MessageParcel 中讀取的 IRemoteObject 對(duì)象列表。 不管這個(gè)列表的長度是大于還是小于從MessageParcel中實(shí)際讀取的IRemoteObject對(duì)象的個(gè)數(shù),都會(huì)返回一個(gè)從MessageParcel中實(shí)際讀取的IRemoteObject對(duì)象的列表。 |
public void writeException(Exception exception)
將異常寫入 MessageParcel。
支持的異常包括 SecurityException、IllegalArgumentException、NullPointerException、IllegalStateException、UnsupportedOperationException、IndexOutOfBoundsException、NegativeArraySizeException、ArrayStoreException、ClassCastException 和 RemoteException。 如果向 MessageParcel 寫入任何其他異常,將返回 RuntimeException。
此方法通常在響應(yīng)接收到的數(shù)據(jù)包時(shí)使用。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
exception | 指示寫入 MessageParcel 的異常。 |
public void writeNoException()
不向 MessageParcel 寫入異常。
public void readException()
從 MessageParcel 中讀取異常。
將拋出異常讀取。
此方法通常在讀取響應(yīng)數(shù)據(jù)包時(shí)使用。
Throws:
Throw 名稱 | Throw描述 |
---|---|
Exception | 引發(fā)從 MessageParcel 讀取的異常。 異常可以是 SecurityException、IllegalArgumentException、NullPointerException、IllegalStateException、UnsupportedOperationException、IndexOutOfBoundsException、NegativeArraySizeException、ArrayStoreException、ClassCastException 或 RemoteException。 |
public static FileDescriptor getFdFromDatagramSocket(DatagramSocket datagramSocket)
從 DatagramSocket 讀取 FileDescriptor
從指定的 DatagramSocket 創(chuàng)建一個(gè)新的文件描述符。 新的文件描述符保存了 DatagramSocket 中原始文件描述符的副本,因此您負(fù)責(zé)關(guān)閉返回的新文件描述符。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
datagramSocket | 指示要獲取 FileDescriptor 的 DatagramSocket。 |
返回:
返回一個(gè)文件描述符。
public static int getFd(FileDescriptor fileDescriptor)
從 FileDescriptor 讀取本機(jī) fd
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fileDescriptor | 指示獲取 fd 的 FileDescriptor。 |
返回:
如果它不為空,則返回給定 FileDescriptor 的 fd; 否則返回 -1。
public static int detachFd(FileDescriptor fileDescriptor)
從 FileDescriptor 中分離本機(jī) fd。
現(xiàn)在您有責(zé)任關(guān)閉本機(jī) fd 或發(fā)生 fd 泄漏。
當(dāng)描述符的原始創(chuàng)建者希望關(guān)閉 FileDescriptor 本身時(shí),您不能調(diào)用該方法。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fileDescriptor | FileDescriptor 來分離 fd。 |
返回:
如果 fd 從給定的 FileDescriptor 中成功分離,則返回一個(gè) fd; 否則返回 -1。
public boolean writeAshmem(Ashmem ashmem)
將指定的 Ashmem 對(duì)象寫入此 MessageParcel。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ashmem | 指示要寫入此 MessageParcel 的 Ashmem 對(duì)象。 |
返回:
如果 Ashmem 對(duì)象成功寫入此 MessageParcel,則返回 true; 否則返回 false。
public Ashmem readAshmem()
從此 MessageParcel 中讀取 Ashmem 對(duì)象。
返回:
返回 Ashmem 對(duì)象。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: