Android入門筆記之源碼解析四

Android入門筆記之源碼解析四

<1>簡介

仿京東商城客戶端源碼分析。

<2>關鍵步驟

主要有6個Activity,MainActivity爲主Activity。

主要是Tab佈局和佈局文件的編寫,具體功能都沒有實現。

其中ExitManager繼承了Application,裏面有個activity的list,採用單例模式,當application結束時,依次結束所有activity。

<3>知識點

What is Application
  Application和Activity,Service一樣是android框架的一個系統組件,當android程序啓動時系統會創建一個 application對象,用來存儲系統的一些信息。通常我們是不需要指定一個Application的,這時系統會自動幫我們創建,如果需要創建自己 的Application,也很簡單創建一個類繼承 Application並在manifest的application標籤中進行註冊(只需要給Application標籤增加個name屬性把自己的 Application的名字定入即可)。
   android系統會爲每個程序運行時創建一個Application類的對象且僅創建一個,所以Application可以說是單例 (singleton)模式的一個類.且application對象的生命週期是整個程序中最長的,它的生命週期就等於這個程序的生命週期。因爲它是全局 的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以通過Application來進行一些,數據傳遞,數據共享 等,數據緩存等操作。
  Datapassing between components using Application
  假如有一個ActivityA, 跳轉到 Activity B ,並需要推薦一些數據,通常的作法是Intent.putExtra() 讓Intent攜帶,或者有一個Bundle把信息加入Bundle讓Intent推薦Bundle對象,實現傳遞。但這樣作有一個問題在 於,Intent和Bundle所能攜帶的數據類型都是一些基本的數據類型,如果想實現複雜的數據傳遞就比較麻煩了,通常需要實現 Serializable或者Parcellable接口。這其實是Android的一種IPC數據傳遞的方法。如果我們的兩個Activity在同一個 進程當中爲什麼還要這麼麻煩呢,只要把需要傳遞的對象的引用傳遞過去就可以了。
  基本思路是這樣的。在Application中創建一個HashMap ,以字符串爲索引,Object爲value這樣我們的HashMap就可以存儲任何類型的對象了。在Activity A中把需要傳遞的對象放入這個HashMap,然後通過Intent或者其它途經再把這人索引的字符串傳遞給Activity B ,Activity B 就可以根據這個字符串在HashMap中取出這個對象了。只要再向下轉個型 ,就實現了對象的傳遞。

<4>代碼及解釋

效果截圖:

  

源代碼地址:

http://download.csdn.net/detail/gmj4850/6327433

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章