鴻蒙OS RemoteProxy

2022-04-27 17:57 更新

RemoteProxy

java.lang.Object

|---ohos.rpc.RemoteProxy

public class RemoteProxy
extends Object
implements IRemoteObject

實現(xiàn) IRemoteObject 代理對象。

嵌套類摘要

從接口 ohos.rpc.IRemoteObject 繼承的嵌套類/接口
IRemoteObject.DeathRecipient

字段摘要

從接口 ohos.rpc.IRemoteObject 繼承的字段
DUMP_TRANSACTION, INTERFACE_TRANSACTION, MAX_TRANSACTION_ID, MIN_TRANSACTION_ID, PING_TRANSACTION

方法總結(jié)

修飾符和類型 方法 描述
boolean addDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 注冊用于接收遠程對象死亡通知的回調(diào)。
void dump(FileDescriptor fd, String[] args) 將當前接口的狀態(tài)轉(zhuǎn)儲到具有特定描述符的文件中。
boolean equals(Object object) 檢查調(diào)用此方法的對象是否等于指定的對象。
protected void finalize() 當垃圾收集確定不再有對該對象的引用時,由對象上的垃圾收集器調(diào)用。
long getIdentity() 獲取此 RemoteProxy 對象的 ID。
String getInterfaceDescriptor() 查詢遠程對象的接口描述符。
int hashCode() 獲取此 RemoteProxy 對象的哈希碼。
boolean isObjectDead() 檢查RemoteProxy對應的RemoteObject是否死亡。
IRemoteBroker queryLocalInterface(String descriptor) 查詢具有指定描述符的本地接口。
boolean removeDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 取消注冊用于接收遠程對象死亡通知的回調(diào)。
static void sendObituary(IRemoteObject.DeathRecipient recipient) 當遠程對象被釋放或脫機時發(fā)送死亡通知。
boolean sendRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) 向 peer 對象發(fā)送請求。
boolean setDataVersion(int dataVersion) 將數(shù)據(jù)版本設置為 RemoteProxy 對象。
void slowPathDump(FileDescriptor fd, String[] args) 將數(shù)據(jù)異步轉(zhuǎn)儲到指定文件。
從類 java.lang.Object 繼承的方法
clone, getClass, notify, notifyAll, toString, wait, wait, wait

方法詳情

queryLocalInterface

public IRemoteBroker queryLocalInterface(String descriptor)

查詢具有指定描述符的本地接口。

指定者:

接口 IRemoteObject 中的 queryLocalInterface

參數(shù):

參數(shù)名稱 參數(shù)描述
descriptor Indicates the descriptor of the interface to query.

返回:

默認返回null,表示代理接口。

addDeathRecipient

public boolean addDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags)

注冊用于接收遠程對象死亡通知的回調(diào)。

指定者:

接口 IRemoteObject 中的 addDeathRecipient

參數(shù):

參數(shù)名稱 參數(shù)描述
recipient 表示要注冊的回調(diào)。
flags 表示死亡通知的標志。 這是一個保留參數(shù)。 將其設置為 0。

返回:

如果回調(diào)注冊成功,則返回 true; 否則返回 false。

removeDeathRecipient

public boolean removeDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags)

取消注冊用于接收遠程對象死亡通知的回調(diào)。

指定者:

接口 IRemoteObject 中的 removeDeathRecipient

參數(shù):

參數(shù)名稱 參數(shù)描述
recipient 指示要注銷的回調(diào)。
flags 表示死亡通知的標志。 這是一個保留參數(shù)。 將其設置為 0。

返回:

如果回調(diào)注銷成功,則返回 true; 否則返回 false。

getInterfaceDescriptor

public String getInterfaceDescriptor()

查詢遠程對象的接口描述符。

指定者:

接口 IRemoteObject 中的 getInterfaceDescriptor

返回:

返回接口描述符。

sendObituary

public static final void sendObituary(IRemoteObject.DeathRecipient recipient)

當遠程對象被釋放或脫機時發(fā)送死亡通知。

參數(shù):

參數(shù)名稱 參數(shù)描述
recipient 表示要發(fā)送的死亡通知。

sendRequest

public boolean sendRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) throws RemoteException

向 peer 對象發(fā)送請求。

如果 peer 對象和 RemoteProxy 在同一設備上,則請求由 IPC 驅(qū)動程序發(fā)送。 如果它們在不同的設備上,則請求由套接字驅(qū)動程序發(fā)送。

指定者:

接口 IRemoteObject 中的 sendRequest

參數(shù):

參數(shù)名稱 參數(shù)描述
code 表示請求的消息代碼。
data 表示存儲待發(fā)送數(shù)據(jù)的MessageParcel 對象。
reply 指示接收響應數(shù)據(jù)的 MessageParcel 對象。
option 指示同步(默認)或異步請求。

返回:

如果操作成功,則返回 true; 否則返回 false。

Throws:

Throw名稱 Throw描述
RemoteException 如果發(fā)生遠程對象異常,則拋出此異常。

dump

public void dump(FileDescriptor fd, String[] args) throws RemoteException

將當前接口的狀態(tài)轉(zhuǎn)儲到具有特定描述符的文件中。

指定者:

在接口 IRemoteObject 中轉(zhuǎn)儲

參數(shù):

參數(shù)名稱 參數(shù)描述
fd 表示目標文件的描述符。
args 以字符串形式表示該方法的參數(shù)。

Throws:

Throw名稱 Throw描述
RemoteException 如果發(fā)生遠程對象異常,則拋出此異常。

slowPathDump

public void slowPathDump(FileDescriptor fd, String[] args) throws RemoteException

將數(shù)據(jù)異步轉(zhuǎn)儲到指定文件。

此方法僅適用于同一設備上的數(shù)據(jù)轉(zhuǎn)儲。

您需要從文件中獲取文件描述符,并在轉(zhuǎn)儲完成后關(guān)閉文件描述符。

指定者:

接口 IRemoteObject 中的 slowPathDump

參數(shù):

參數(shù)名稱 參數(shù)描述
fd 表示目標文件的文件描述符。
args 指示要轉(zhuǎn)儲的參數(shù)(字符串數(shù)組)。

Throws:

Throw名稱 Throw描述
RemoteException 如果轉(zhuǎn)儲命令發(fā)送失敗或轉(zhuǎn)儲過程中發(fā)生錯誤,則拋出此異常。

isObjectDead

public boolean isObjectDead()

檢查RemoteProxy對應的RemoteObject是否死亡。

指定者:

接口 IRemoteObject 中的 isObjectDead

返回:

如果 RemoteObject 已死,則返回 true; 否則返回 false。

getIdentity

public long getIdentity()

獲取此 RemoteProxy 對象的 ID。

具有相同 ID 的 RemoteProxy 對象被視為相等。

返回:

返回此 RemoteProxy 對象的唯一 ID。

setDataVersion

public boolean setDataVersion(int dataVersion)

將數(shù)據(jù)版本設置為 RemoteProxy 對象。

參數(shù):

參數(shù)名稱 參數(shù)描述
dataVersion 指示寫入 MessageParcel 的遠程對象及其數(shù)據(jù)版本。

返回:

如果設置數(shù)據(jù)版本成功,則返回 true; 否則返回 false。

finalize

protected void finalize() throws Throwable

從類復制的描述:對象

當垃圾收集確定不再有對該對象的引用時,由對象上的垃圾收集器調(diào)用。子類覆蓋 finalize 方法以釋放系統(tǒng)資源或執(zhí)行其他清理。

finalize 的一般約定是,當 Java? 虛擬機確定不再有任何方法可以讓任何尚未終止的線程訪問此對象時調(diào)用它,除非是由于某個操作由準備完成的其他對象或類的完成所采取。 finalize 方法可以采取任何行動,包括使該對象再次可供其他線程使用;然而,finalize 的通常目的是在對象被不可撤銷地丟棄之前執(zhí)行清理操作。例如,代表輸入/輸出連接的對象的 finalize 方法可能會執(zhí)行顯式 I/O 事務以在對象被永久丟棄之前中斷連接。

Object 類的 finalize 方法不執(zhí)行任何特殊操作;它只是正常返回。 Object 的子類可以覆蓋這個定義。

Java 編程語言不保證哪個線程將為任何給定對象調(diào)用 finalize 方法。但是,可以保證調(diào)用 finalize 的線程在調(diào)用 finalize 時不會持有任何用戶可見的同步鎖。如果 finalize 方法拋出未捕獲的異常,則忽略該異常并終止該對象的終結(jié)。

在為一個對象調(diào)用 finalize 方法之后,不會采取進一步的行動,直到 Java 虛擬機再次確定沒有任何方法可以讓任何尚未終止的線程訪問該對象,包括可能的行動由其他準備完成的對象或類,此時該對象可能被丟棄。

對于任何給定的對象,Java 虛擬機永遠不會多次調(diào)用 finalize 方法。

finalize 方法拋出的任何異常都會導致該對象的終結(jié)被暫停,否則會被忽略。

覆蓋:

在類 Object 中完成

Throws:

Throw名稱 Throw描述
Throwable 此方法引發(fā)的異常

equals

public boolean equals(Object object)

檢查調(diào)用此方法的對象是否等于指定的對象。

具有相同地址或 ID 的對象被視為相等。 您可以使用 getIdentity() 獲取 RemoteProxy 對象的 ID。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
object 表示要比較的對象。

返回:

如果兩個對象相等則返回真; 否則返回 false。

hashCode

public int hashCode()

獲取此 RemoteProxy 對象的哈希碼。

覆蓋:

類 Object 中的 hashCode

返回:

返回此 RemoteProxy 對象的哈希碼。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號