티스토리 뷰

반응형

ActivityContext 와 AndroidContext 는 둘 다 Context 를 구현하고 있다. 

 

Context 는 앱 환경에 대한 전역 정보에 접근하기 위한 인터페이스로,

애플리케이션의 현재 상태에 대해 시스템에 제공하는 정보에 접근할 수 있게 해준다.

Context 를 통해 리소스, 데이터베이스, 프리퍼런스, 시스템 서비스 등에 접근할 수 있는 메소드를 제공한다. 

 

ActivityContext 

특정 액티비티에 바인딩되어 있으며, 액티비티의 생명주기에 따라 존재한다. 

따라서 액티비티가 파괴되면 Context 도 더 이상 유효하지 않다. 

용도 

UI 와 밀접하게 연관된 작업에 사용된다.

 

예시)

 새로운 액티비티 혹은 다이얼로그를 띄울 때

 액티비티의 레이아웃 리소스테 접근할 때

 액티비티 스태틱 서비스에 접근할 때 

주의 사항

ActivityContext 는 장기간 보관하면 메모리 누수의 위험이 있다. 

Activity 가 파괴될 때 해당 Context 도 같이 정리되어야한다. 

 

ApplicationContext

애플리케이션의 생명주기가 동일하며, 앱이 실행되는 동안 항상 유효하다. 

애플리케이션 전체에 걸쳐 공유되는 컨텍스트다. 

용도 

애플리케이션 수준의 작업에서 사용된다. 

 

예시)

 Singleton 과 같이 애플리케이션 전체에서 사용되는 인스턴스를 초기화할 때

 애플리케이션 전역에서 접근해야하는 리소스에 접근할 때 

주의 사항

앱 전체에서 공유되기 때문에 Activity 에 의존적인 작업에 사용하지 않는 것이 좋다. 

ex) ApplicationContext 를 사용해서 Dialog 를 띄우면 에러 발생 

 

적절한 Context 사용은 안드로이드 개발에서 중요한 부분으로,

Context 의 범위와 생명 주기를 잘 이해하고 상황에 맞게 선택하여 사용해야한다. 

반응형

'정리하기 > android' 카테고리의 다른 글

parcelize 어노테이션  (0) 2024.01.10
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함