2013-10-02 57 views
1

我碰巧知道如果我的類信息它實現Parcelable有空writeToParcel()方法,Bundle.putParcelableArrayList()Bundle.getParcelableArrayList()方法仍然ArrayList中<信息工作>我應該實現writeToParcel方法嗎?

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文檔和圖書指導?

+0

仍然正常工作,因爲您在打包/非打包後獲得行和列的正確值? – njzk2

+0

如果你沒有讀/寫包裹,那麼實現'Parcelable'有什麼意義? – waqaslam

+0

@ njzk2:是我得到正確的值 –

回答

1

Android Bundle類不遵循IPC封送時遵循的相同協議。通過反射,實現Bundle的類將簡單地讀取&將Parcelable對象寫入其自己的內部映射中。因此,無論您在Parcelable派生類中定義的屬性都將被使用。相反,如果您使用的是IPC編組協議 - 例如:IPC編組協議將Info對象從一個活動傳遞到另一個活動 - 這是您需要實現特定的writeToParcelable方法和相應的構造函數的時候。

相關問題