티스토리 뷰
Context : 안드로이드의 Component들이 동작하기 위해 필요한 기능들을 담고 있는 class. Component가 생성될 때마다 Context는 별도로 생성됨. ( 액티비티, 서비스 등이 실행되는데 필요한 기능들을 가지고 있음 )
Context를 이용하여 할 수 있는 것들 <- Context가 가지고 있는 기능들이 무엇인지 알면 됨.
Context가 가지고 있는 기능들
- Context는 Application에 대한 정보를 가지고 있음 ( 즉, Application의 패키지를 알고 있기 때문에, Application 내에 있는 Component 및 리소스, 디렉토리 정보들을 가지고 있음 )
- Context는 Application에 대한 정보를 가지고 있기 때문에 Activity가 가지는 정보 또한 알 수 있음. 즉, Activity가 가지는 Theme에 대한 정보도 알 수 있음 (그렇기 때문에, View를 생성하는데, Activity의 Context 정보를 넘겨주는 것은 Activity의 Context 가 가지고 있는 Theme에 관련된 정보를 활용하기 위해서 넘기는 것이다. )
- Context는 SystemService를 가짐. ( NOTIFICATION_SERVICE, ALARM_SERVICE ... )
Context 유지 기간
- Context는 안드로이드의 Component 객체에 독립적으로 존재하기 때문에 해당 객체가 존재하는한 Context 내의 기능들을 활용할 수 있음. ( ex : Toast가 ApplicationContext를 사용하는 이유 ... Activity가 종료되더라도 일정시간동안 Toast가 띄워져야 하므로 ... )
- * 참고 : Application 은 Process에 load 된 이후에 메모리 부족 등의 이유로 제거되지 않는 이상 계속 유지됨. 따라서 Application 이 가지는 정보들을 Application을 extends 하여 커스텀할 수 있음. 이럴 경우, AndroidManifest의 <application>의 name 속성을 커스텀한 Application 명으로 설정
'android' 카테고리의 다른 글
[android] 안드로이드 개념 - ViewHolder (0) | 2020.05.28 |
---|---|
[android] 안드로이드 - 백그라운드 작업 시 UI 작업 진행 방법 (0) | 2020.05.28 |
[android] 안드로이드 - 개념정리 : Intent 및 PendingIntent (0) | 2020.05.27 |
[android] DiffUtil - RecyclerView 의 효율적인 리스트 갱신을 위한 방법 (0) | 2020.05.19 |
[android] MVVM 패턴에서 ViewModel 객체가 생성되지 않을 때 (0) | 2020.05.17 |