阅读(2399)
赞(8)
鸿蒙OS Sequenceable
2022-08-16 15:12:35 更新
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 interface | Sequenceable.ProducerT | 从 Parcel 创建一个 Sequenceable 实例。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
default boolean | hasFileDescriptor() | 检查此 Sequenceable 的实现类是否包含 FileDescriptor 对象数据。 |
boolean | marshalling(Parcel out) | 将此 Sequenceable 对象编组为 Parcel。 |
boolean | unmarshalling(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 | 如果操作失败,则抛出此异常。 |