본문 바로가기

IT/kotlin언어

[코틀린] mvvm패턴 속 application context 가져오기

안녕하세요 남갯입니다 오늘은 


MVVM패턴속에 context를 인자로 넘겨주지 않기때문에


application 에서 context를 가져오는 방법에 대해 알려드리려고합니다


드로우어블 리소스나 스트링 리소스를 가져올때


자바의 경우 아래와 같이 작성하면 됩니다





public class Application extends android.app.Application {

private static Application instance;

public static Application getInstance(){
return instance;
}
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public Context applicaitonContext() {
return getApplicationContext();
}
}



코틀린의경우


class MyApplication : Application() {
lateinit var context: Context

init{
instance = this
}

companion object {
private var instance: MyApplication? = null
fun applicationContext() : Context {
return instance!!.applicationContext
}
}


컨텍스트를 컴페니언 오브젝트로 생성해서

MyApplication.applicationContext() 가져오면 됩니다.