1. Context
생성된 객체의 상태 정보를 알 수 있다.
애플리케이션과 액티비티에 대한 정보를 얻기 위해서는 Context를 사용한다.
Context는 크게 두가지의 역할을 하고 있는 추상 클래스이다.
앱에 관하여 시스템이 관리하고 있는 정보에 접근한다. (resource , class , 애플리케이션 환경 정보)
안드로이드 시스템 서비스에서 제공하는 API 호출 ( startActivity() , bindService() )
2. 종류
1) Application Context
Application 생명주기에 귀속된다. 앱 시작부터 종료까지 살아있음.
싱글톤인스턴스 - 앱이 죽기 전까지 동일한 하나의 객체를 반환한다.
getApplicationContext() 를 통해 접근한다.
어떠한 Context보다도 오래 유지된다.
GUI와 관련된 작업은 불가능
2) Activity Context
Activity 생명주기에 귀속된다. Activity 소멸시 같이 소멸됨.
getContext() 를 통해 접근한다.
Activity의 범위 내에서 Context를 전달한다.
GUI 작업이 가능하다.
3. Context 관련 method
View.getContext()
현재 실행되고 있는 View의 context를 리턴하는데 보통은 현재 활성화된 Activity의 context가 된다.
Activity가 null이면 null을 반환
requrieContext() : null을 반환하지 않는 메서드, null이면 예외 발생
ex) txtView.text = itemView.context.getString(R.string.view_count, videoInfo.viewCount)
ex) binding.root.context
Activity.getApplicationContext()
애플리케이션의 context가 리턴된다.
현재 액티비티의 context 뿐만 아니라 애플리케이션의 라이프 사이클에 해당하는 context가 사용된다.
ContextWrapper.getBaseContext()
자신의 Context가 아닌 다른 Context에 접근하려 할 때 사용한다.
ContextWrapper는 getBaseContext()를 경유해서 Context를 참조할 수 있다.
this
Context를 상속하는 Application, Activity, Service, IntentService와 같은 클래스들 내부에서 context를 참조할 때 사용가능
Android Kotlin Activity 액티비티 (0) | 2024.10.15 |
---|---|
Android Kotlin bindService LocalBinder (2) | 2024.09.25 |
Android Kotlin Permission (0) | 2024.09.24 |
Android Kotlin Thread 와 Coroutine 과 Service (0) | 2024.09.24 |
Android Kotlin 일반 Intent 및 PendingIntent (0) | 2024.09.24 |
댓글 영역