Android ApplicationContext接口深入分析
需求
Android(Kotlin)獲取應(yīng)用全局上下文 ApplicationContext。
希望可以在應(yīng)用內(nèi)任意位置獲取上下文,而不是僅在 Activity 或 Service 里才能獲取。
ApplicationContext 是和應(yīng)用全局相關(guān)的。
實現(xiàn)方法
- 自定義 MyApplication,保存自身的 Application 實例。
- MyApplication 配置到 AndroidManifest 中。
- 定義頂層屬性 appContext,獲取 Application 實例的applicationContext。
代碼
package com.example.fileio import android.app.Application /** * 自定義 Application */ class MyApplication : Application() { companion object { lateinit var application: Application } init { application = this } }
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application android:name=".MyApplication" </application> </manifest>
上下文工具類 ContextUtil.kt
package com.example.fileio.util import android.content.Context import com.example.fileio.MyApplication val appContext: Context = MyApplication.application.applicationContext
調(diào)用
可以在應(yīng)用內(nèi)任意位置獲取 ApplicationContext。
Application
用于維護(hù)全局應(yīng)用程序狀態(tài)的基類。
Application | Android Developers (google.cn)
getApplicationContext()
返回當(dāng)前進(jìn)程的單個全局Application對象的上下文。
當(dāng)需要一個生命周期與當(dāng)前上下文分離的上下文時,才應(yīng)該使用該上下文。
該上下文與進(jìn)程的生命周期關(guān)聯(lián),而不是與當(dāng)前組件相關(guān)聯(lián)。
參考
到此這篇關(guān)于Android ApplicationContext接口深入分析的文章就介紹到這了,更多相關(guān)Android ApplicationContext內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android基于CountDownView的時間控件擴(kuò)展
這篇文章主要為大家詳細(xì)介紹了Android基于CountDownView的時間控件擴(kuò)展,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02Flutter開發(fā)技巧RadialGradient中radius計算詳解
這篇文章主要為大家介紹了Flutter小技巧RadialGradient?中?radius?的計算詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Android使用AudioRecord實現(xiàn)錄音功能
這篇文章主要為大家詳細(xì)介紹了Android使用AudioRecord實現(xiàn)錄音功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08Android MessageQueue消息隊列主要作用詳解
Android 消息機(jī)制主要指的是 Handler 的運(yùn)行機(jī)制及其所依賴的 MessageQueue 和 Looper 的工作過程,Handler、MessageQueue、Looper組成一個相互聯(lián)系的整體。本文先從 MessageQueue 的源碼來說明其實現(xiàn)原理2023-02-02詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString
這篇文章主要介紹了詳解Android獲得系統(tǒng)GPU參數(shù) gl.glGetString的相關(guān)資料,需要的朋友可以參考下2017-07-07Android學(xué)習(xí)項目之簡易版微信為例(一)
這篇文章主要以簡易版微信為例,為大家介紹了Android簡易版微信項目的基礎(chǔ)知識,感興趣的小伙伴們可以參考一下2016-06-06Android Studio 當(dāng)build時候出錯解決辦法
這篇文章主要介紹了 Android Studio在build的時候出現(xiàn)transformClassesWithDexForDebug錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05Android錄音功能的實現(xiàn)以及踩坑實戰(zhàn)記錄
在Android 開發(fā)過程中,有些功能是通用的,或者是多個業(yè)務(wù)方都需要使用的,下面這篇文章主要給大家介紹了關(guān)于Android錄音功能的實現(xiàn)以及踩坑的相關(guān)資料,需要的朋友可以參考下2022-06-06