getApplicationContext와 this의 차이

Jang Seok Woo·2021년 7월 28일
0

실무

목록 보기
79/136

안드로이드 스튜디오에서 context가 들어가야 할 곳에 this를 넣을때도 있고, getApplicationContext()를 넣을때도 있습니다.

신기한게 둘중 뭘 넣더라도 대부분 잘 돌아갑니다.

둘의 차이는 뭘까요?

getBaseContext(), getApplication()도 함께 살펴보도록 하겠습니다.

안드로이드에는 두 종류의 context가 있습니다.

Applicaiton context : 어플리케이션 자체와 연동되는 것이므로, 어플리케이션의 life cycle이 지속되는 동안 동일한 객체입니다. 즉, 어플리케이션을 종료 후 다시 실행시킬때에만 바뀌는 것이지요.

Activity context : 액티비티와 연동된 것이므로, 그 액티비티를 파괴시키고 다시 시작시키면 activity context도 바뀝니다(한 개의 어플리케이션 내에는 여러 액티비티를 넣을 수 있지요).

그렇다면 this와 getApplicationContext()의 차이점은 무엇일까요?

이름에서 알 수 있듯이, getApplicationContext()가 application context를 가르키는 것이고,

this가 activity context를 가르키는 것입니다.

두 종류의 context 중 어느 context를 써도 대부분 별 문제 없는 상황이므로

this를 써도 정상적으로 작동되고, getApplicationContext()를 써도 잘 작동되는 것입니다.

this로 오류가 날때는 해당 액티비티가 없어서 그런 것이므로, getApplicationContext()를 넣으면 작동됩니다.

요약 :
this = getBaseContext() = Activity Context

getApplicationContext() = getApplication() = Application Context

profile
https://github.com/jsw4215

0개의 댓글