Android Intent傳遞對象為什么要序列化,序列化有那幾種方式

? ? ? ? 我們都知道進行android 開發(fā)的時候,跳轉(zhuǎn)到Activity和Fragment的時候,傳遞對象是通過Intent或者bundle 進行傳遞。當(dāng)這個對象沒有實現(xiàn)序列化的時候 當(dāng)你通過Inetnt傳遞的時候會報紅,系統(tǒng)會提示你將這個對象實現(xiàn)序列化。

? ? ? 1.先了解一下 什么是序列化。通過對《Android 開發(fā)藝術(shù)探索》可以知道序列化是將一個對象轉(zhuǎn)化成可存儲可傳輸?shù)臓顟B(tài),序列化后的對象可以在網(wǎng)絡(luò)上傳輸,也可以存儲到本地。

? ? ? ?2.回到我們的主題,那為什么要序列化呢?<大致有三個原因>

? ? ? ? ? ? ? ?a.永久性保存對象,保存對象的字節(jié)序列到本地文件中

? ? ? ? ? ? ? ?b.對象可以在網(wǎng)絡(luò)中傳輸

? ? ? ? ? ? ? ?c.對象可以在IPC之間傳遞

? ? 3.序列化有那幾種方式呢<有兩種方式>?

? ? ? android自定義對象可序列化有兩個選擇一個是Serializable和Parcelable

? ? ?4.它們之間有什么區(qū)別?

? ? ? ? ? ? ?a.在使用內(nèi)存的時候Parcelable比Serializable的性能高。

? ? ? ? ? ? ?b.Serializable在序列化的時候會產(chǎn)生大量的臨時變量,從而引起頻繁的GC(內(nèi)存回收)。

? ? ? ? ? ? ?c.Parcelable不能使用在將對象存儲在磁盤上這種情況,因為在外界的變化下Parcelable不能很好的保證數(shù)據(jù)的持續(xù)性。

? ? ? ? ? ? d.實現(xiàn)Serializable很簡單 因為Serializable是一個空接口 所以只要在在實體類中實現(xiàn)這個接口即可 Parcelable就稍微復(fù)雜了一點了?

? ? ? ? ? ? 這里有實現(xiàn)Parcelable 這個接口的列子?blog.csdn.net/jaycee110905/article/details/21517853?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容