阅读(3222) (0)

鸿蒙OS IRemoteObject

2022-04-26 17:41:19 更新

IRemoteObject

public interface IRemoteObject

必须由服务提供者和用户实现的远程对象接口。

该接口可用于查询或获取接口描述符、添加或删除死亡通知、将对象状态转储到特定文件以及发送消息。

嵌套类摘要

修饰符和类型 接口 描述
static interface IRemoteObject.DeathRecipient 表示订阅 RemoteObject 的死亡通知的 IRemoteObject 的内部类。

字段摘要

修饰符和类型 字段 描述
static int DUMP_TRANSACTION 指示转储操作的消息代码。
static int INTERFACE_TRANSACTION 指示传输的消息代码。
static int MAX_TRANSACTION_ID 表示有效消息代码的最大值。
static int MIN_TRANSACTION_ID 指示有效消息代码的最小值。
static int PING_TRANSACTION 指示 Ping 操作的消息代码。

方法总结

修饰符和类型 方法 描述
boolean addDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 注册用于接收远程对象死亡通知的回调。
void dump(FileDescriptor fd, String[] args) 将对象状态转储到特定文件。
String getInterfaceDescriptor() 获取对象的接口描述符。
boolean isObjectDead() 检查对象是否死亡。
IRemoteBroker queryLocalInterface(String descriptor) 查询接口描述。
boolean removeDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags) 取消注册用于接收远程对象死亡通知的回调。
boolean sendRequest(int code, MessageParcel data, MessageParcel reply, MessageOption option) 以同步或异步模式向对等进程发送 MessageParcel 消息。
void slowPathDump(FileDescriptor fd, String[] args) 将数据异步转储到指定文件。

字段详细信息

DUMP_TRANSACTION

static final int DUMP_TRANSACTION

指示转储操作的消息代码。

INTERFACE_TRANSACTION

static final int INTERFACE_TRANSACTION

指示传输的消息代码。

MAX_TRANSACTION_ID

static final int MAX_TRANSACTION_ID

表示有效消息代码的最大值。

此常量用于检查操作的有效性。

MIN_TRANSACTION_ID

static final int MIN_TRANSACTION_ID

指示有效消息代码的最小值。

此常量用于检查操作的有效性。

PING_TRANSACTION

static final int PING_TRANSACTION

指示 Ping 操作的消息代码。

方法详情

queryLocalInterface

IRemoteBroker queryLocalInterface(String descriptor)

查询接口描述。

为服务提供者使用的接口返回一个有效的 IRemoteBroker 对象; 服务用户使用的接口返回null,表示该接口不是本地接口。

参数:

参数名称 参数描述
descriptor 表示接口描述符的字符串。

返回:

返回绑定到指定接口描述符的 IRemoteBroker 对象。

sendRequest

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

以同步或异步模式向对等进程发送 MessageParcel 消息。

如果选项设置了异步模式,则立即返回响应。 如果选项设置为同步模式,接口将等待对等进程的响应,直到请求超时。 用户必须准备回复以接收对等进程给出的执行结果。

参数:

参数名称 参数描述
code 表示消息代码,由通信双方确定。 如果接口是由IDL工具生成的,则消息代码由IDL自动生成。
data 指示发送到对等进程的 MessageParcel 对象。
reply 表示对等进程返回的MessageParcel 对象。
option 指示发送消息的同步或异步模式。

返回:

如果方法调用成功,则返回 true; 否则返回 false。

Throws:

Throw名称 Throw描述
RemoteException 如果方法调用失败,则抛出此异常。

addDeathRecipient

boolean addDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags)

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

如果与 RemoteProxy 对象匹配的远程对象进程死亡,则调用此方法。

参数:

参数名称 参数描述
recipient 表示要注册的回调。
flags 表示死亡通知的标志。

返回:

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

removeDeathRecipient

boolean removeDeathRecipient(IRemoteObject.DeathRecipient recipient, int flags)

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

参数:

参数名称 参数描述
recipient 指示要注销的回调。
flags 表示死亡通知的标志。

返回:

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

getInterfaceDescriptor

String getInterfaceDescriptor()

获取对象的接口描述符。

接口描述符是一个字符串。

返回:

返回接口描述符。

dump

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

将对象状态转储到特定文件。

参数:

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

Throws:

Throw名称 Throw描述
RemoteException 如果转储失败,则引发此异常。

slowPathDump

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

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

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

参数:

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

Throws:

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

isObjectDead

boolean isObjectDead()

检查对象是否死亡。

返回:

如果对象已死,则返回 true; 否则返回 false。