개발하는 두더지

[Android/안드로이드] 안드로이드 Context란? 기능과 사용 방법 본문

Java,Android

[Android/안드로이드] 안드로이드 Context란? 기능과 사용 방법

덜지 2016. 7. 22. 01:35
이번에는 안드로이드의 Context란 무엇인지 알아 보고 Conext를 얻는 방법과 그 사용 범위에 대해 개괄적으로 알아보도록 하겠습니다.

Context


  • 자신이 어떤 어플리케이션을 나타내고 있는지 알려주는 ID 역할 

     

  • ActivityManagerService 에 접근할 수 있도록 하는 통로 역할 

     


Application Context는 안드로이드 어플리케이션의 핵심 기능을 위한 중심부 역할을 합니다.

Context는 여러 Activity 인스턴스들 간에 리소스를 공유하거나 설정등에 접근하기 위해 사용됩니다.

현재의 프로세서에서 Application Context는 getApplicationContext() 메서드를 사용하여 얻을 수 있습니다.

Context context = getApplicationContext();   

Activity 클래스는 Context 클래스를 상속 확장하였으므로, Context를 얻기 위해 Activity의 this를 직접 받아올 수도 있습니다.

하지만 무분별한 Activity 참조는 메모리릭이 발생할 확률을 높이므로 가급적 getApplicationContext() 메서드를 통해 얻는것이 좋습니다.

이에 대한 자세한 설명은 이곳을 참조하세요.

 

Context의 사용

일단 Context를 얻게 되면 다음과 같은 다양한 어플리케이션 기능과 서비스를 이용할수 있습니다.


어플리케이션 리소스 얻기

Context의 getResources() 메서드를 이용하여 어플리케이션의 리소스를 얻을 수 있습니다.

다음은 어플리케이션의 String 리소스를 얻어오는 예제 입니다.

String greeting = getResources().getString(R.string.hello);  


Application Preferences 이용하기

Context의 getSharedPreferences 메서드를 이용하면 SharedPreferences 클래스를 사용할 수 있습니다.

SharedPreferences 클래스는 어플리케이션의 환결설정과 같은 간단한 데이터들을 저장할 수 잇습니다.

아래는 SharedPreferences를 이용하여 사용자 이름과 성별을 저장하는 간단한 예제 입니다.

SharedPreferences settings = getSharedPreferences(“User”, MODE_PRIVATE);   
SharedPreferences.Editor prefEditor = settings.edit();   
prefEditor.putString(“UserName”, “Spunky”);   
prefEditor.putString(“SEX”, "Man");   
prefEditor.commit();  

preference 세팅을 얻으려면 아래와 같이 해줄 수 있습니다.

SharedPreferences settings = getSharedPreferences(“User”, MODE_PRIVATE);   
String userName = settings.getString(“UserName”, “androidnote (Default)”);   

Contexts를 이용하여 다른 어플리케이션의 기능을 접근하기

이밖에도 Application Context는 아래와 같은 다양한 기능들을 제공하여 줍니다.

Activity 실행
  • System-level 서비스 프로바이더 요청 ( ex : location service )
  • Application의 파일, 폴더, 데이터베이스 다루기
  • Application permission 검사


Comments