第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android多個activity之間傳遞/共享對象的處理

Android多個activity之間傳遞/共享對象的處理

牛魔王的故事 2019-02-19 07:23:32
在android的開發(fā)過程中經(jīng)常會遇到在activity之間傳遞數(shù)據(jù)的情況,如果只是基礎(chǔ)類型或者String,直接放入intent就可以,這個沒什么問題,但如果是對象呢?用intent的話,無論parcelable還是serializable,都是一個copy,有大小和性能的限制,而且我現(xiàn)在想傳遞的是同一個對象?,F(xiàn)在我能想到的只有通過靜態(tài)變量傳遞,大概是這樣的寫法: public Constant{ public static TestObject object; public static void setTemp(TestObject object){ this.object = object; } public static TestObject getTemp(){ TestObject temp = object; object = null; return temp; } } 大家認為這樣的寫法有什么缺點,或者有其他辦法可以實現(xiàn)嗎?
查看完整描述

6 回答

?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

我覺得你還是應(yīng)該實現(xiàn)Parcelable接口,然后通過Intent.putExtra()傳遞即可。Google通過Parcelable對對象做序列化的性能比你想的要高的多,不可能成為你當(dāng)前程序性能的瓶頸。

如果Intent的參數(shù)超size,可以考慮將大對象序列化到本地文件,然后傳遞URI過去。類似的存儲中介還有ShreadPreference和SQLite。

同時,使用靜態(tài)類去存儲大量數(shù)據(jù)也是可行的,主要考慮好并發(fā)寫和同步讀取的問題。

查看完整回答
反對 回復(fù) 2019-03-01
?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

弄一個application下的setter和getter就能達到你的要求,就不用靜態(tài)變量了,組件之間不建議使用靜態(tài)變量傳值。組件間應(yīng)該考慮數(shù)據(jù)值的交換傳遞而不是對象引用,要降低耦合度。

查看完整回答
反對 回復(fù) 2019-03-01
?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

可以使用 Eventbus

查看完整回答
反對 回復(fù) 2019-03-01
?
料青山看我應(yīng)如是

TA貢獻1772條經(jīng)驗 獲得超8個贊

不知道你遇到的“大小和性能的限制” 限制在何處
傳個對象什么的RxBus 好頂贊

查看完整回答
反對 回復(fù) 2019-03-01
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

兩種思路:本質(zhì)是把共享的量存于生命周期長的環(huán)境:如static量或android app中的application里, 生命周期最長的就是持久化的方式了。。。
若場景僅是activity間的共享, 相對來說并發(fā)的問題就很輕, 因為大都是串行的操作。

查看完整回答
反對 回復(fù) 2019-03-01
?
開心每一天1111

TA貢獻1836條經(jīng)驗 獲得超13個贊

一 使用Eventbus傳遞。
二 使用枚舉。

查看完整回答
反對 回復(fù) 2019-03-01
  • 6 回答
  • 0 關(guān)注
  • 859 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號