中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Activity傳輸數據中如何優雅地進行序列化操作

發布時間:2021-12-21 12:01:28 來源:億速云 閱讀:162 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關Activity傳輸數據中如何優雅地進行序列化操作,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們經常需要在Activity之間傳輸數據,傳輸數據有三種方法

  • 使用Intent的putExtra()方法攜帶少量數據來傳輸數據

  • 使用Intent的putExtra()方法攜帶Bundle傳輸數據。不要使用這方法傳輸重要的信息, 因為是明文傳輸。

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

而序列化對象也有三種方法

  • 使用Java提供的Serializable接口

  • 使用Gson庫轉為為JSON字符串

  • 使用Android提供的Parcelable接口

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

0x01 Serializable接口

model層 
要通過Intent傳遞的實體類要實現Serializable接口

Activity傳輸數據中如何優雅地進行序列化操作
發送數據

Activity傳輸數據中如何優雅地進行序列化操作
接受數據 

調用getSerializableExtra()方法來獲取序列化對象

Activity傳輸數據中如何優雅地進行序列化操作

0x02 JSON字符串

model層 
跟平時定義實體類沒有什么區別

Activity傳輸數據中如何優雅地進行序列化操作
發送數據 

需要使用Gson或者Fastjson第三方的庫,將對象轉化為json數據。 
我在這里使用Gson做示范。

Activity傳輸數據中如何優雅地進行序列化操作
接受數據 

同樣也是使用JSON庫把json數據轉化為對象

Activity傳輸數據中如何優雅地進行序列化操作
0x03 Parcelable

model層 
要通過Intent傳遞的實體類要實現Parcelable接口 
并且實現兩個方法:

  • describeContents:內容接口描述,默認返回0即可;

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

    接口, 用于從Parcel容器中讀取數據

Activity傳輸數據中如何優雅地進行序列化操作  
  Activity傳輸數據中如何優雅地進行序列化操作  
 
發送數據

Activity傳輸數據中如何優雅地進行序列化操作
接受數據 

調用getParcelableExtra方法來獲取序列化對象

Activity傳輸數據中如何優雅地進行序列化操作
0x04 性能對比

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

綜上所述: 
要對對象進行序列化,最好使用Parcelable接口

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

保山市| 清水河县| 铜梁县| 温宿县| 兴山县| 醴陵市| 保靖县| 东阳市| 台东县| 平远县| 常州市| 武鸣县| 辛集市| 额尔古纳市| 平阳县| 衡阳县| 蒲江县| 达尔| 洛扎县| 莱芜市| 西平县| 察隅县| 灵丘县| 朝阳县| 芦溪县| 乌审旗| 通辽市| 棋牌| 财经| 若羌县| 綦江县| 宁波市| 舟曲县| 治县。| 博乐市| 淄博市| 城市| 蓬莱市| 诏安县| 六枝特区| 浪卡子县|