Android context란?

98oys·2022년 5월 18일
1

안드로이드

목록 보기
7/20
post-custom-banner

프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미하며 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보를 말합니다.

안드로이드에서의 context는 어플리케이션 환경에 대한 글로벌 정보를 갖는 인터페이스라고 합니다.

인터페이스란 서로 다른 두 개의 시스템 사이에서 정보나 신호를 주고 받는 경우의 접점이나 경계면, 즉 사용자가 기기를 쉽게 동작시키는데 도우믕ㄹ 주는 시스템을 의미합니다.

안드로이드 스튜디오를 사용할 때 인자로 Context를 요청하는 함수들이 많습니다.

Context를 잘못 사용하면 앱이 비정상으로 종료가 되거나 메모리 누수가 발생할 수 있습니다. 😡


안드로이드를 처음 접한지 얼마 안되신 분들은 의미도 모른채 Context를 사용할 수 도 있습니다.

🐣초보자들이 버튼을 누르고 Toast 메시지를 띄우는 예제를 많이 따라치곤합니다.

여기서 context가 사용됩니다. 왜? 일까라는 의문점이 들어 찾아보았습니다.

Toast는 일반적인 View들과는 달리 특정 Activity와 연결되어 있는 window에 속하지 않고 독립

적인 window를 생성하기 때문이라고 합니다.


그래서 우리는 Toast 메시지가 켜져있는 상태에서 빠르게 종료를 한다면 화면에 메시지가 남아있는 것을 확인할 수 있습니다.

안드로이드 공식 문서 : https://developer.android.com/reference/android/content/Context

응용 프로그램 환경에 대한 글로벌 정보에 대한 인터페이스입니다. 이것은 안드로이드 시스템에 의해 구현되는 추상 클래스이다. 애플리케이션별 리소스 및 클래스에 대한 액세스와 함께 시작 활동, 브로드캐스트 및 수신 의도 등과 같은 애플리케이션 수준 운영에 대한 업콜을 허용합니다.

이 글만으로는 컨텍스트를 이해하기는 어려운 것 같습니다.😂


🍎Amit Shekhar's blog : https://blog.mindorks.com/understanding-context-in-android-application-330913e32514

해외 안드로이드 개발자 Amit Shekhar의 블로그에 대한 좋은 글이 있어 가져왔습니다.

Amit Shekhar는 컨텍스트에 대해 아래와 같이 설명하고 있습니다.

  • App의 현재 상태를 나타낸다.
  • Activity와 App의 정보를 얻기 위해 사용할 수 있다.
  • 리소스, Database, shared preference 등에 접근하기 위해 사용할 수 있다.
  • Activity와 App Class에는 Context Class를 확장한 Class이다.

Context는 크게 두가지로 나뉩니다.
1. Application Context
2. Activity Context

Application Context란?

어플리케이션 컨텍스트는 싱글톤 인스턴스이며, Activity에서 getApplicationContext 를 통해 접근할 수 있습니다. Application lifecycle에 관련되어있으며, 현재 Activity가 종료된 이후에도 Context가 필요한 작업 또는 Activity 스코프를 벗어난 Context가 필요한 작업에서 사용하면 좋습니다.

Activity Context

Activity 내에서 유요한 Context입니다. Activity lifecycle에 관련되어있으며, Activity가 소멸할 때 context도 같이 소멸합니다. 예를 들어, Activity와 lifecycle이 같은 object를 생성해야 할 때, 이 컨텍스트를 사용할 수 있습니다.

profile
Android Developer, Department of Information and Communication Engineering, Inha University
post-custom-banner

0개의 댓글