본문 바로가기

안드로이드/안드로이드

[안드로이드] MyApplication

Toast 메시지, dialog 등 context가 필요한 기능들이 있다.

 

이때 어디서든 context를 가져와 쓸 수 있고, 앱 실행 시 실행시켜줘야 되는 기능들이 있다면 MyApplication에 넣어 실행과 동시에 초기화 시켜줄 수도 있다.

 

MyApplication Class는 Application 클래스를 상속받는다.

 

class MyApplication : Application() {
    companion object {
        lateinit var prefs: PreferenceUtil
        private lateinit var myApplication: MyApplication
        fun getInstance() : MyApplication = myApplication
    }

    override fun onCreate() {
        prefs = PreferenceUtil(applicationContext)
        super.onCreate()
        
        myApplication = this

        NaverMapSdk.getInstance(this).client =
            NaverMapSdk.NaverCloudPlatformClient(BuildConfig.Client_ID)
    }
}

 

Preference를 초기화해 객체를 갖다 쓸 수도 있으며, 

 

NaverMap 과 같이 Key 값을 초기화해주어야 할 때, MyApplication에 넣어주면 좋다.

 

마지막으로 Manifest에 다음과 같이 설정해준다.

 

Manifest

<application
        android:name=".MyApplication"
        ...
 </application>