(1)如Activity和在它之內(nèi)的Fragment,可以直接通過(guò)接口的調(diào)用來(lái)傳遞數(shù)據(jù)溯香。
優(yōu)勢(shì):直接砸民,方便抵怎。?
劣勢(shì):代碼耦合性較高
(2)如果是兩個(gè)Activity之間傳遞數(shù)據(jù),有界面切換的過(guò)程的話岭参,可以用startActivity或startActivityForResult反惕。用其中的intent參數(shù)攜帶數(shù)據(jù)。優(yōu)勢(shì):一般用于初始化Activity和調(diào)用系統(tǒng)功能
(3)如果頁(yè)面之間傳遞數(shù)據(jù)沒(méi)有頁(yè)面切換的過(guò)程演侯,可以通過(guò)廣播的方式姿染,sendBroadcast(intent);要接受數(shù)據(jù)的頁(yè)面注冊(cè)這個(gè)廣播就行了。 ? ?優(yōu)勢(shì):代碼耦合性低,易重構(gòu)悬赏,適用范圍廣狡汉。
缺點(diǎn):數(shù)據(jù)需要序列化和反序列化,代碼較多 ?
(4)通過(guò)存儲(chǔ)介質(zhì)來(lái)分享數(shù)據(jù)闽颇,如頁(yè)面A將數(shù)據(jù)存入數(shù)據(jù)庫(kù)盾戴,SharedPreferences,文件兵多,Internet尖啡。頁(yè)面B通過(guò)讀取它們來(lái)得到數(shù)據(jù) ? ? ??
優(yōu)勢(shì):數(shù)據(jù)保存時(shí)間長(zhǎng),不受到界面生命周期的影響?
缺點(diǎn):讀取速度較慢剩膘,需要異步操作 ? ?
(5)采用事件總線的方式衅斩,注冊(cè)和接收事件(數(shù)據(jù)),其中的代表者是EventBus,頁(yè)面需要指定和注冊(cè)接收事件的類(lèi)型 ??
優(yōu)勢(shì):不用序列化數(shù)據(jù)怠褐,適用范圍大 ?
缺點(diǎn):需要學(xué)習(xí)使用