반응형
✔ Context
애플리케이션 환경에 대한 글로벌 정보를 갖는 인터페이스, Context는 Android 시스템에서 구현체를 제공하는 추상클래스로, 애플리케이션 별 리소스 및 클래스 접근에 사용되며, 액티비티 실행, 브로드캐스트, 인텐트 수신 등과 같은 애플리케이션 수준작업에 사용.
✔ ApplicationContext
Application LifeCycle를 따르며 애플리케이션이 실행되어 종료될때까지 동일한 객체를 참조할 뿐더러 변경되지 않는다.
but) GUI 관련된 작업은 불가하며, 다이얼로그를 띄우는 작업 같은 경우에는 ActivityContext를 사용해야한다.
ex ) getApplicationContext(), getApplication()
✔ ActivityContext
Activity LifeCycler을 따르며 activity가 onDestroy() 될 때 context는 사라지게 된다.
ex) getBaseContext(), ActivityName.this
대체적으로 ApplicationContext를 권장하고 있으며, 그 이유는 수명이 길고 Null 오류를 피할 수 있어서이다.
but) ActivityContext를 사용해야 하는 경우도 있다.
예를 들어) 다이얼로그, 액티비티 시작, layout inflater 등 제약이 있는곳에서 !
반응형