首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Application 類詳解:全局上下文、生命周期與典型用法

     編輯:程式設計綜合問答

核心定位

Application 是進程級單例,隨進程創建而創建,隨進程銷毀而銷毀。它是全局狀態的最佳承載點。

主要作用

  • 全局上下文:getApplicationContext() 任意處可獲取,避免 Activity 洩漏。
  • 進程級初始化:第三方 SDK 初始化(圖片加載、日志、崩潰收集)、數據庫/緩存初始化、全局線程池創建。
  • 跨組件數據共享:用戶信息、配置項、事件總線實例等。
  • 生命周期回調:onCreate()、onTrimMemory()、onLowMemory()、onConfigurationChanged()。

實現步驟

  1. 繼承 Application 並重寫 onCreate()。
  2. 在 AndroidManifest.xml 的 <application> 標籤設置 android:name=".MyApplication"。
  3. 全局獲取:(MyApplication) context.getApplicationContext()。

避坑指南

  • 不要存放大對象(Bitmap、Cursor 等),進程被殺後重建會丟失,導致 NPE。
  • 多進程場景:onCreate() 會多次調用,需判斷進程名再初始化 SDK。
  • ANR 風險:onCreate() 執行超時(主線程 5s/10s)會導致啟動 ANR,耗時操作必須放子線程。

單例模式對比

Application 本質是系統管理的單例,比手寫單例更安全:
✅ 系統保證實例唯一
✅ 自動關聯進程生命周期
✅ 可獲取系統服務(getSystemService())

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved