鸿蒙OS IRemoteObject
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。