這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比綏陽(yáng)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式綏陽(yáng)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋綏陽(yáng)地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
我們經(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ì)比。
model層
要通過(guò)Intent傳遞的實(shí)體類要實(shí)現(xiàn)Serializable接口
發(fā)送數(shù)據(jù)
接受數(shù)據(jù)
調(diào)用getSerializableExtra()方法來(lái)獲取序列化對(duì)象
model層
跟平時(shí)定義實(shí)體類沒(méi)有什么區(qū)別
發(fā)送數(shù)據(jù)
需要使用Gson或者Fastjson第三方的庫(kù),將對(duì)象轉(zhuǎn)化為json數(shù)據(jù)。
我在這里使用Gson做示范。
接受數(shù)據(jù)
同樣也是使用JSON庫(kù)把json數(shù)據(jù)轉(zhuǎn)化為對(duì)象
0x03 Parcelable
model層
要通過(guò)Intent傳遞的實(shí)體類要實(shí)現(xiàn)Parcelable接口
并且實(shí)現(xiàn)兩個(gè)方法:
describeContents
:內(nèi)容接口描述,默認(rèn)返回0即可;
writeToParcel
:將傳遞的數(shù)據(jù)打包到Parcel容器中;
同時(shí),還需要實(shí)例化Parcelable.Creator
接受數(shù)據(jù)
調(diào)用getParcelableExtra
方法來(lái)獲取序列化對(duì)象
0x04 性能對(duì)比
從圖片得知,轉(zhuǎn)化速度的效率:
Parcelable > Serializable > JSON字符串
Parcelabled轉(zhuǎn)化效率很明顯摔了Serializable和JSON字符串好幾條街。
綜上所述:
要對(duì)對(duì)象進(jìn)行序列化,最好使用Parcelable接口
上述就是小編為大家分享的Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標(biāo)題:Activity傳輸數(shù)據(jù)中如何優(yōu)雅地進(jìn)行序列化操作
瀏覽地址:http://jinyejixie.com/article36/ijcopg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)