반응형
안녕하세요.
오늘은 내가 생성한 Application 클래스가 호출되지 않는 경우에 대해서 설명하겠습니다.
앱을 개발하다보면 여러가지 이유가 있겠지만 보통 전역으로 사용할 수 있도록 최상위의 Application 클래스를 상속받는 경우가 있습니다.
다음과 같이 Application을 상속받아서 사용합니다.
예제는 DataStore를 전역으로 사용하기 위해 작성한 코드입니다.
import android.app.Application
import android.util.Log
import com.teamgr.sample.db.DataStoreManager
class MyApplication : Application() {
private lateinit var dataStore: DataStoreManager
companion object {
private const val TAG = "MyApplication"
private lateinit var myApplication: MyApplication
fun getInstance() : MyApplication = myApplication
}
override fun onCreate() {
super.onCreate()
Log.d(TAG, "onCreate: called")
myApplication = this
dataStore = DataStoreManager(this)
}
fun getDataStore(): DataStoreManager = dataStore
}
이때 Application 클래스의 onCreate 메서드가 호출되지 않는 경우가 있습니다.
이럴때는 AndroidManifest.xml에 android:name 태그를 추가해주시고 나의 Application 클래스를 지정해주면 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.teamgr.sample">
<application
android:name=".MyApplication">
</application>
</manifest>
감사합니다.
반응형
'Development > Android' 카테고리의 다른 글
| Android Studio dolphin에서 파이어베이스 추가하기. (0) | 2022.09.25 |
|---|---|
| Android ListView ViewHolder Pattern + DataBinding 적용하기 (0) | 2022.03.14 |
| Android MVVM with Retrofit2 (0) | 2022.01.30 |
| Gson 라이브러리 사용하기 (0) | 2022.01.25 |
| Android Notification 만들기 (0) | 2022.01.13 |