溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作

發(fā)布時(shí)間:2021-12-21 12:01:28 來(lái)源:億速云 閱讀:154 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們經(jīng)常需要在Activity之間傳輸數(shù)據(jù),傳輸數(shù)據(jù)有三種方法

  • 使用Intent的putExtra()方法攜帶少量數(shù)據(jù)來(lái)傳輸數(shù)據(jù)

  • 使用Intent的putExtra()方法攜帶Bundle傳輸數(shù)據(jù)。不要使用這方法傳輸重要的信息, 因?yàn)槭敲魑膫鬏敗?/p>

  • 使用Intent的putExtra()方法攜帶序列化的對(duì)象傳輸數(shù)據(jù)。

而序列化對(duì)象也有三種方法

  • 使用Java提供的Serializable接口

  • 使用Gson庫(kù)轉(zhuǎn)為為JSON字符串

  • 使用Android提供的Parcelable接口

下面就介紹這三種方法的使用以及性能的對(duì)比。

0x01 Serializable接口

model層 
要通過(guò)Intent傳遞的實(shí)體類(lèi)要實(shí)現(xiàn)Serializable接口

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
發(fā)送數(shù)據(jù)

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
接受數(shù)據(jù) 

調(diào)用getSerializableExtra()方法來(lái)獲取序列化對(duì)象

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作

0x02 JSON字符串

model層 
跟平時(shí)定義實(shí)體類(lèi)沒(méi)有什么區(qū)別

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
發(fā)送數(shù)據(jù) 

需要使用Gson或者Fastjson第三方的庫(kù),將對(duì)象轉(zhuǎn)化為json數(shù)據(jù)。 
我在這里使用Gson做示范。

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
接受數(shù)據(jù) 

同樣也是使用JSON庫(kù)把json數(shù)據(jù)轉(zhuǎn)化為對(duì)象

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
0x03 Parcelable

model層 
要通過(guò)Intent傳遞的實(shí)體類(lèi)要實(shí)現(xiàn)Parcelable接口 
并且實(shí)現(xiàn)兩個(gè)方法:

  • describeContents:內(nèi)容接口描述,默認(rèn)返回0即可;

  • writeToParcel:將傳遞的數(shù)據(jù)打包到Parcel容器中; 
    同時(shí),還需要實(shí)例化Parcelable.Creator

    接口, 用于從Parcel容器中讀取數(shù)據(jù)

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作  
  Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作  
 
發(fā)送數(shù)據(jù)

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
接受數(shù)據(jù) 

調(diào)用getParcelableExtra方法來(lái)獲取序列化對(duì)象

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
0x04 性能對(duì)比

Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
從圖片得知,轉(zhuǎn)化速度的效率: 
Parcelable > Serializable > JSON字符串 
Parcelabled轉(zhuǎn)化效率很明顯摔了Serializable和JSON字符串好幾條街。

綜上所述: 
要對(duì)對(duì)象進(jìn)行序列化,最好使用Parcelable接口

上述就是小編為大家分享的Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI