回覆列表
  • 1 # 待花開半島似水浮生

    Activity之間是沒有辦法直接傳遞資料的。Android的設計原則是,用Intent在不同的Activity和程序之間進行通訊,但是通常來講,Intent中只能存入基本資料型別和系統預設支援的比如Uri之類的。那麼對於使用者自己定義的資料結構是無法直接用Intent來傳送的,如果想要透過Intent來傳遞自定義資料,可以讓資料結構實現Parcelable介面,這樣就可以把資料放入Intent。但是Intent的傳送效率也不是很高,特別是當傳遞一些如Bitmap的大資料,用Intent傳遞超過500K的Bitmap,就會造成Framework層的JavaBinder掛掉,結果就是傳遞不成功。

      這點可以算成是Android的一個弊端,沒有很好的解決方案。能做到的就是儘量設計的時候注意,儘量讓Activity之間共享基本資料型別。

      Android本身的應用中也深受其害,可以看到有很多應用程式的原始碼中的主要的類在三千行以上的不在少數,比如Browser中的BrowserActivity有四千多行;Mms中的ComposeMessageActivity也有四千多行,等等。為什麼一個類會如此之大,就是因為它們是程式的主頁面,是業務的核心邏輯所在,裡面也控制著很多的其他的資料結構,而又無法與另外的Activity共享,所以就只能在一個Activity裡面做所的事情。

  • 中秋節和大豐收的關聯?
  • 鑽石那麼硬用什麼切?