阅读(2152) (9)

鸿蒙OS RemoteProxy

2022-04-26 17:42:46 更新

RemoteProxy

java.lang.Object

|---ohos.rpc.RemoteProxy

public class RemoteProxy
extends Object
implements IRemoteObject

实现 IRemoteObject 代理对象。

嵌套类摘要

从接口 ohos.rpc.IRemoteObject 继承的嵌套类/接口
IRemoteObject.DeathRecipient

字段摘要

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

方法总结

修饰符和类型 方法 描述
boolean addDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 注册用于接收远程对象死亡通知的回调。
void dump(FileDescriptor fd, String[] args) 将当前接口的状态转储到具有特定描述符的文件中。
boolean equals(Object object) 检查调用此方法的对象是否等于指定的对象。
protected void finalize() 当垃圾收集确定不再有对该对象的引用时,由对象上的垃圾收集器调用。
long getIdentity() 获取此 RemoteProxy 对象的 ID。
String getInterfaceDescriptor() 查询远程对象的接口描述符。
int hashCode() 获取此 RemoteProxy 对象的哈希码。
boolean isObjectDead() 检查RemoteProxy对应的RemoteObject是否死亡。
IRemoteBroker queryLocalInterface(String descriptor) 查询具有指定描述符的本地接口。
boolean removeDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 取消注册用于接收远程对象死亡通知的回调。
static void sendObituary(IRemoteObject.DeathRecipient recipient) 当远程对象被释放或脱机时发送死亡通知。
boolean sendRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) 向 peer 对象发送请求。
boolean setDataVersion(int dataVersion) 将数据版本设置为 RemoteProxy 对象。
void slowPathDump(FileDescriptor fd, String[] args) 将数据异步转储到指定文件。
从类 java.lang.Object 继承的方法
clone, getClass, notify, notifyAll, toString, wait, wait, wait

方法详情

queryLocalInterface

public IRemoteBroker queryLocalInterface(String descriptor)

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

指定者:

接口 IRemoteObject 中的 queryLocalInterface

参数:

参数名称 参数描述
descriptor Indicates the descriptor of the interface to query.

返回:

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

addDeathRecipient

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

注册用于接收远程对象死亡通知的回调。

指定者:

接口 IRemoteObject 中的 addDeathRecipient

参数:

参数名称 参数描述
recipient 表示要注册的回调。
flags 表示死亡通知的标志。 这是一个保留参数。 将其设置为 0。

返回:

如果回调注册成功,则返回 true; 否则返回 false。

removeDeathRecipient

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

取消注册用于接收远程对象死亡通知的回调。

指定者:

接口 IRemoteObject 中的 removeDeathRecipient

参数:

参数名称 参数描述
recipient 指示要注销的回调。
flags 表示死亡通知的标志。 这是一个保留参数。 将其设置为 0。

返回:

如果回调注销成功,则返回 true; 否则返回 false。

getInterfaceDescriptor

public String getInterfaceDescriptor()

查询远程对象的接口描述符。

指定者:

接口 IRemoteObject 中的 getInterfaceDescriptor

返回:

返回接口描述符。

sendObituary

public static final void sendObituary(IRemoteObject.DeathRecipient recipient)

当远程对象被释放或脱机时发送死亡通知。

参数:

参数名称 参数描述
recipient 表示要发送的死亡通知。

sendRequest

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

向 peer 对象发送请求。

如果 peer 对象和 RemoteProxy 在同一设备上,则请求由 IPC 驱动程序发送。 如果它们在不同的设备上,则请求由套接字驱动程序发送。

指定者:

接口 IRemoteObject 中的 sendRequest

参数:

参数名称 参数描述
code 表示请求的消息代码。
data 表示存储待发送数据的MessageParcel 对象。
reply 指示接收响应数据的 MessageParcel 对象。
option 指示同步(默认)或异步请求。

返回:

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

Throws:

Throw名称 Throw描述
RemoteException 如果发生远程对象异常,则抛出此异常。

dump

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

将当前接口的状态转储到具有特定描述符的文件中。

指定者:

在接口 IRemoteObject 中转储

参数:

参数名称 参数描述
fd 表示目标文件的描述符。
args 以字符串形式表示该方法的参数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生远程对象异常,则抛出此异常。

slowPathDump

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

将数据异步转储到指定文件。

此方法仅适用于同一设备上的数据转储。

您需要从文件中获取文件描述符,并在转储完成后关闭文件描述符。

指定者:

接口 IRemoteObject 中的 slowPathDump

参数:

参数名称 参数描述
fd 表示目标文件的文件描述符。
args 指示要转储的参数(字符串数组)。

Throws:

Throw名称 Throw描述
RemoteException 如果转储命令发送失败或转储过程中发生错误,则抛出此异常。

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)

将数据版本设置为 RemoteProxy 对象。

参数:

参数名称 参数描述
dataVersion 指示写入 MessageParcel 的远程对象及其数据版本。

返回:

如果设置数据版本成功,则返回 true; 否则返回 false。

finalize

protected void finalize() throws Throwable

从类复制的描述:对象

当垃圾收集确定不再有对该对象的引用时,由对象上的垃圾收集器调用。子类覆盖 finalize 方法以释放系统资源或执行其他清理。

finalize 的一般约定是,当 Java™ 虚拟机确定不再有任何方法可以让任何尚未终止的线程访问此对象时调用它,除非是由于某个操作由准备完成的其他对象或类的完成所采取。 finalize 方法可以采取任何行动,包括使该对象再次可供其他线程使用;然而,finalize 的通常目的是在对象被不可撤销地丢弃之前执行清理操作。例如,代表输入/输出连接的对象的 finalize 方法可能会执行显式 I/O 事务以在对象被永久丢弃之前中断连接。

Object 类的 finalize 方法不执行任何特殊操作;它只是正常返回。 Object 的子类可以覆盖这个定义。

Java 编程语言不保证哪个线程将为任何给定对象调用 finalize 方法。但是,可以保证调用 finalize 的线程在调用 finalize 时不会持有任何用户可见的同步锁。如果 finalize 方法抛出未捕获的异常,则忽略该异常并终止该对象的终结。

在为一个对象调用 finalize 方法之后,不会采取进一步的行动,直到 Java 虚拟机再次确定没有任何方法可以让任何尚未终止的线程访问该对象,包括可能的行动由其他准备完成的对象或类,此时该对象可能被丢弃。

对于任何给定的对象,Java 虚拟机永远不会多次调用 finalize 方法。

finalize 方法抛出的任何异常都会导致该对象的终结被暂停,否则会被忽略。

覆盖:

在类 Object 中完成

Throws:

Throw名称 Throw描述
Throwable 此方法引发的异常

equals

public boolean equals(Object object)

检查调用此方法的对象是否等于指定的对象。

具有相同地址或 ID 的对象被视为相等。 您可以使用 getIdentity() 获取 RemoteProxy 对象的 ID。

覆盖:

类 Object 中的等于

参数:

参数名称 参数描述
object 表示要比较的对象。

返回:

如果两个对象相等则返回真; 否则返回 false。

hashCode

public int hashCode()

获取此 RemoteProxy 对象的哈希码。

覆盖:

类 Object 中的 hashCode

返回:

返回此 RemoteProxy 对象的哈希码。