Context란?
새롭게 생성된 객체가 지금 무슨 일이 일어나고 있는지 알 수 있도록 함
애플리케이션과 액티비티에 대한 정보를 얻기 위해 사용
- 앱에 관련해 시스템이 관리하고 있는 정보에 접근
- 안드로이드 시스템 서비스에서 제공하는 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개만 생성되는 패턴
'Old > 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 |