상세 컨텐츠

본문 제목

Android Kotlin Context

Android Kotlin

by 신농해태 2024. 9. 25. 01:02

본문

반응형

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를 참조할 때 사용가능
 



728x90
LIST

관련글 더보기

댓글 영역