阅读(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 如果操作失败,则抛出此异常。