activity跳轉(zhuǎn)的三種方法 android兩個(gè)app之間的activity怎么跳轉(zhuǎn)?
android兩個(gè)app之間的activity怎么跳轉(zhuǎn)?無法在活動之間直接傳輸數(shù)據(jù)。Android的設(shè)計(jì)原則是使用intent在不同的活動和進(jìn)程之間進(jìn)行通信,但一般來說,intent只能存儲基本的數(shù)據(jù)
android兩個(gè)app之間的activity怎么跳轉(zhuǎn)?
無法在活動之間直接傳輸數(shù)據(jù)。Android的設(shè)計(jì)原則是使用intent在不同的活動和進(jìn)程之間進(jìn)行通信,但一般來說,intent只能存儲基本的數(shù)據(jù)類型和系統(tǒng)默認(rèn)支持,比如URI。用戶定義的數(shù)據(jù)結(jié)構(gòu)不能通過意圖直接傳遞。如果要通過intent傳輸用戶定義的數(shù)據(jù),可以讓數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)Parcelable接口,這樣就可以將數(shù)據(jù)放入intent。但是intent的傳輸效率不是很高,特別是當(dāng)一些大數(shù)據(jù)如位圖等被傳輸,超過500K的位圖被intent傳輸時(shí),框架層的javabinder會掛斷,導(dǎo)致傳輸不成功。
這可以看作是Android的一個(gè)缺點(diǎn),沒有好的解決方案。我們所能做的就是在設(shè)計(jì)時(shí)盡量在活動之間共享基本數(shù)據(jù)類型。
Android在自己的應(yīng)用程序中遭受了很大的損失。我們可以看到,在源代碼中有許多應(yīng)用程序的主類行數(shù)超過3000行。例如,browser中的browseractivity有4000多行;MMS中的composemessage activity有4000多行,等等。類之所以如此之大,是因?yàn)樗鼈兪浅绦虻闹黜摵蜆I(yè)務(wù)的核心邏輯。它們還控制許多其他數(shù)據(jù)結(jié)構(gòu),不能與其他活動共享。因此,他們只能在一個(gè)活動中做事情。