91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

木兰县| 墨竹工卡县| 柳河县| 丁青县| 吴江市| 平度市| 九江县| 武乡县| 靖边县| 弥勒县| 齐齐哈尔市| 呼图壁县| 南澳县| 连南| 诏安县| 甘洛县| 景宁| 兰溪市| 安仁县| 久治县| 北票市| 五指山市| 阿鲁科尔沁旗| 万州区| 乐都县| 马尔康县| 双流县| 安化县| 额济纳旗| 津南区| 林周县| 常德市| 莱西市| 隆化县| 德保县| 新田县| 玉龙| 北流市| 芮城县| 大冶市| 外汇|