Computer Engineering/Android

Study / Context

onenewkong 2023. 2. 1. 17:15

Context란?

 

새롭게 생성된 객체가 지금 무슨 일이 일어나고 있는지 있도록

애플리케이션과 액티비티에 대한 정보를 얻기 위해 사용

  1. 앱에 관련해 시스템이 관리하고 있는 정보에 접근
  2. 안드로이드 시스템 서비스에서 제공하는 API 호출

 

종류

 

Application Context

  • application 생명 주기에 귀속
  • 싱글톤: 앱이 죽기 전까지 동일한 하나의 객체를 반환
  • getApplicationContext() 통해 접근
  • 가장 오래 유지됨

Activity Context

  • Activity 생명주기에 귀속
  • getContext() 통해 접근
  • Activity 범위 내에서 Context 전달

 

언제 사용하는지?

 

데이터베이스를 관장하는 AppDatabase처럼 싱글톤으로 존재하는 경우 초기화 context 필요

그때 activity context 전달하게 된다면 Activity 생명주기에 따라 어느 시점에 context 소멸이 것임

하지만 AppDatabase 싱글톤이므로 해당 Activity Context 지속적으로 참조하게 되어 메모리 누수가 발생

이럴 땐 Application Context 사용하는 것이 바람직하고, GUI 관련된 것들에는 Application Context 정상적으로 동작하지 않을 있으므로 무조건적으로 Application Context 쓰는 또한 바람직하지 않음

 

-> 생명주기에 따른 범위를 명심하여 Context 참조해야함

 

 

+ 싱글톤 패턴?

객체의 인스턴스가 오직 1개만 생성되는 패턴

'Computer Engineering > Android' 카테고리의 다른 글

Study / SQLite  (0) 2023.02.01
Study / View 전환  (0) 2023.02.01
Project / 변경 사항  (0) 2023.01.29
Project / Git - Pull Request  (0) 2023.01.23
Project / Git  (0) 2023.01.21