Android中Application的使用

初學Android的朋友都是最先接觸的Activity,對Application比較陌生,這裏講解下。

什麼是Application

     Application和Activity,service一樣是Android框架的一個系統組件,當Android程序啓動時系統會創建一個Application對象,用來存儲該程序的一些信息。通常我們是不需要創建一個Application的,系統會自動幫我們創建,這就是我們只寫Activity能成功運行的原因。
     
     當我們自己創建Application時,只要創建一個類繼承至Application,並在manifest的Application標籤中寫上我們創建的類名稱就可以了。
     
     舉例來說,我新建了一個繼承至Application的MyApp類,在manifest的Application標籤添加如下:
     
     android:name = "com.ctrlz.csdnblog.MyApp"
     
     這就相當於我們指定了該程序的Aplication是MyApp。

     android系統會爲每個程序運行時創建一個Application類的對象且僅創建一個,所以Application可以說是單例 (singleton)模式的一個類。且application對象的生命週期是整個程序中最長的,它的生命週期就等於這個程序的生命週期。因爲它是全局的單例的,所以在不同的Activity,Service中獲得的對象都是同一個對象。所以通過Application來進行一些,數據傳遞,數據共享等,數據緩存,管理Activity等操作。(從manifest也能看出來Aplication是包含Activity的)
     
     這種關係有點像Activity和Fragment。


使用舉例
     
     1、數據傳輸,暫存數據

     當我們在Activity  A傳數據至Activity B時,通常使用Intent攜帶參數傳輸,但是當我們再將數據從Activity  B傳至Activity  C時,又得寫一遍,十分繁瑣。

     這時候就可以在Application中設置變量,在A中set賦值,在B和C中直接get獲取邊可以了。

     2、管理Activity

     一個程序Activity的數量是很多的,有的甚至達到200多。當我們退出程序時,也許有一些Activity忘了finish(),留在屏幕上,出現bug。
     
     這時候,我們便可以在Application中新建一個Activity的List,添加AddActivity和removeActivity的方法。同時,新建一個BaseActivity,在OnCreate方法中調用Application的Add方法,這樣只要是在程序中繼承在BaseActivity的類,都被添加在List當中,在退出程序時調用Application的removeActivity方法就能把所有的Activity finish()掉。

     3、管理全局變量、狀態
     
     通常一個軟件沒有登錄也是能瀏覽的,當我們登錄後,我們可以保存是否登錄的信息,賬號信息等等。

附:
     Android中的程序什麼時候退出是有系統決定的,程序只能決定Activity等其他組件的退出。

ctrlz+presents!

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