Android application類相關記錄

邪_物語發表於2020-10-18

本篇文章記錄一些Android中application類的作用,內容介紹。

Android系統會為每個程式執行時建立一個Application類的物件且僅建立一個,所以Application可以說是單例 (Singleton)模式的一個類。且 == Application 物件的生命週期是整個程式中最長的,它的生命週期就等於這個程式的生命週期== 。因為它是全域性唯一的,所以在不同的Activity,Service中獲得的物件都是同一個物件。所以通過 Application 來進行一些:資料傳遞、資料共享、資料快取等操作

這裡面的重點就是:全域性唯一;可以進行資料傳遞,共享,快取等操作。

重寫application生命週期事件

  1. public void onCreate()
       在應用程式建立的時候被呼叫,可以實現這個這個方法來建立和例項化任何應用程式狀態變數或共享資源。還可以在這個方法裡面得到 Application 的單例。

  2. public void onTerminate ()
      當終止應用程式物件時呼叫,不保證一定被呼叫,當程式是被核心終止以便為其他應用程式釋放資源,那麼將不會提醒,並且不呼叫應用程式的物件的onTerminate方法而直接終止程式。

  3. public void onLowMemory()
      當系統資源匱乏的時候,我們可以在這裡可以釋放額外的記憶體, 這個方法一般只會在後臺程式已經結束,但前臺應用程式還是缺少記憶體時呼叫。可以重寫這個方法來清空快取或者釋放不必要的資源。

  4. public void onTrimMemory(int level)
      當執行時決定當前應用程式應該減少其記憶體開銷時(通常在進入後臺執行的時候)呼叫,包含一個 level 引數,用於提供請求的上下文。

  5. public void onConfigurationChanged (Configuration newConfig)
      與 Activity 不同,配置改變時,應用程式物件不會被終止和重啟。如果應用程式使用的值依賴於特定的配置,則重寫這個方法來載入這些值,或者在應用程式級處理配置值的改變。

自定義application

用自定義的application,這樣可以達到自己想要的效果。方法如下:

  1. 建立自定義application類,繼承application類即可:
    在這裡插入圖片描述
  2. 在AndroidManifest.xml檔案中的application節點上,引用:
    在這裡插入圖片描述
    獲得包名:
    在這裡插入圖片描述
    在獲取application物件的時候,我們如果自己寫獲取物件的方法,是不需要單例的,因為application類全域性只有一個,它本身就是一個單例,所以我們不需要用單例去保護它。
    在這裡插入圖片描述

相關文章