鸿蒙OS开发文档 鸿蒙OS Sequenceable

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 1

Sequenceable

public interface Sequenceable

在进程间通信 (IPC) 期间将类的对象写入 Parcel 并从 Parcel 中恢复它们。

只有在类继承自 Sequenceable 并实现 Sequenceable 中提供的编组和解组方法后,才能在 IPC 期间完成此操作。 如果类有一个final成员变量,其值不能通过调用unmarshalling来改变,你还必须实现Sequenceable.Producer中的createFromParcel方法。

示例代码:

public class Example implements Sequenceable {
private int number;
private String name;
public boolean marshalling(Parcel out) {
return out.writeInt(number) && out.writeString(name);
}
public boolean unmarshalling(Parcel in) {
this.number = in.readInt();
this.name = in.readString();
return true;
}
public static final Sequenceable.Producer
PRODUCER = new Sequenceable.Producer
() {
public Example createFromParcel(Parcel in) {
// Initialize an instance first, then do customized unmarshlling.
Example instance = new Example();
instance.unmarshalling(in);
return instance;
}
};
}

嵌套类摘要

修饰符和类型接口描述
static interfaceSequenceable.ProducerT从 Parcel 创建一个 Sequenceable 实例。

方法总结

修饰符和类型方法描述
default booleanhasFileDescriptor()检查此 Sequenceable 的实现类是否包含 FileDescriptor 对象数据。
booleanmarshalling(Parcel out)将此 Sequenceable 对象编组为 Parcel。
booleanunmarshalling(Parcel in)从 Parcel 中解组此 Sequenceable 对象。

方法详情

hasFileDescriptor

default boolean hasFileDescriptor()

检查此 Sequenceable 的实现类是否包含 FileDescriptor 对象数据。

如果自定义 Sequenceable 类包含任何 FileDescriptor 数据,则应覆盖此方法。 此方法默认返回 false。

返回:

如果它包含 FileDescriptor 数据,则返回 true; 否则返回 false。

marshalling

boolean marshalling(Parcel out)

将此 Sequenceable 对象编组为 Parcel。

参数:

参数名称参数描述
out指示将 Sequenceable 对象编组到的 Parcel 对象。

返回:

如果编组成功,则返回 true; 否则返回 false。

Throws:

Throw名称Throw描述
ParcelException如果操作失败,则抛出此异常。

unmarshalling

boolean unmarshalling(Parcel in)

从 Parcel 中解组此 Sequenceable 对象。

参数:

参数名称参数描述
in指示已将 Sequenceable 对象编组到的 Parcel 对象。

返回:

如果解组成功,则返回 true; 否则返回 false。

Throws:

Throw名称Throw描述
ParcelException如果操作失败,则抛出此异常。