我应该实现writeToParcel方法吗?

时间:2013-10-02 08:34:07

标签: android android-4.0-ice-cream-sandwich parcelable

我碰巧知道如果实现 Parcelable 的类 Info 具有空的 writeToParcel()方法, Bundle.putParcelableArrayList( ) Bundle.getParcelableArrayList()方法仍适用于 ArrayList<信息>

public class Info implements Parcelable
{
    public int row;
    public int column;

    public int describeContents()
    {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags)
    {  
        // Left empty!
    }
}

所以问题是为什么?当我真的应该实现 writeToParcel 方法作为API文档和书籍指示?

1 个答案:

答案 0 :(得分:1)

Android Bundle类不遵循IPC编组期间遵循的相同协议。通过反思,一个实现Bundle的类将简单地读取&将Parcelable对象写入其自己的内部映射。因此,将使用您在Parcelable派生类中定义的任何属性。

相反,如果您正在使用IPC编组协议 - 例如将Info对象从一个活动传递到另一个活动 - 这是您需要实现特定的writeToParcelable方法和相应的构造函数。