一、Android傳值Intent和Bundle的區(qū)別
1、數(shù)據(jù)類型不同
Intent
可以傳遞任何類型的數(shù)據(jù),包括基本數(shù)據(jù)類型、對(duì)象、數(shù)組等。而Bundle
只能傳遞一些特定的數(shù)據(jù)類型,如基本數(shù)據(jù)類型和字符串,以及Parcelable
和Serializable
類型的對(duì)象。
2、傳遞方式不同
Intent
可以通過(guò)putExtra()
方法來(lái)傳遞數(shù)據(jù),也可以在構(gòu)造方法中傳遞數(shù)據(jù)。而Bundle
只能通過(guò)putXXX()
方法來(lái)添加數(shù)據(jù),然后將Bundle
作為參數(shù)傳遞給Intent
。
3、作用范圍不同
Intent
的作用范圍比Bundle
大,它不僅可以傳遞數(shù)據(jù),還可以啟動(dòng)另一個(gè)活動(dòng)或服務(wù),或者發(fā)送廣播等。而Bundle
只是一個(gè)用于封裝數(shù)據(jù)的容器,沒(méi)有其他功能。
4、適用場(chǎng)景不同
由于Intent
具有比Bundle
更廣泛的作用范圍,因此在需要啟動(dòng)其他活動(dòng)或服務(wù)、發(fā)送廣播等場(chǎng)景下,使用Intent
更加方便。而在只需要傳遞一些簡(jiǎn)單數(shù)據(jù)類型的情況下,使用Bundle
更加適合。