Android

Android 09. Application Class 란?

shin96bc 2022. 6. 9. 10:11

(1) Application Class 란?

     1) Application Class 는 어느 컴포넌트( Activity, Service, Intent 등 )에서나 공유할 수 있는 전역 Class 를

         의미합니다. Application 을 상속받은 Class 는 공동으로 관리해야 하는 데이터를 작성하기에 적합합니다.

     2) Class 를 만들고 Application Class 를 상속한 뒤, 매니페스트의 application 태그안에 android:name 속성에

         Class 의 이름을 등록해서 사용합니다.

     3) Application 을 상속받은 Class 는 첫번째 Activity 보다 먼저 인스턴스화 됩니다.

     4) 이렇게 애플리케이션에서 공통되게 사용되는 Application 의 자원들은 어디서든 Context 를 이용해서

         접근이 가능합니다.

 

(2) Application 의 활용

     1) Application Class 에서 static 으로 선언한 전역변수는 언제 어디서나 접근, 수정이 가능합니다.

     2) Application Class 에 작성된 메서드는 언제 어디서나 호출이 가능합니다.

     ex) 사용할 때는 getApplicationContext() 메서드를 이용해서 인스턴스를

           받아오면 그 인스턴스로 자원에 접근할 수 있습니다.

           ( 강제 형변환 해줘야 합니다.

             어플리케이션_클래스_이름 변수명 = (어플리케이션_클래스_이름)getApplicationContext() )

     3) BroadCastReceiver 에서 접근할때는 onReceive() 메서드를 통해 들어온 context 를 이용해서

          context.getApplicationContext() 이렇게 인스턴스를 가져올 수 있습니다.

 

     4) ContentProvider 에서 접근할때는 getContext().getApplicationContext() 이렇게 접근할 수 있습니다.

 

(3) Application Class 사용시 주의점

     1) 잘못 사용하면 메모리 누수가 발생할 수 있습니다.

     2) 앱의 생명주기에 종속되어 있으므로, 함부로 사용하면 안됩니다.

     3) 현재 컨텍스트의 생명주기를 넘어서는 범위에서 컨텍스트가 필요한 경우에만 사용합니다.

     4) 라이브러리 초기화 혹은 싱글톤 객체에 컨텍스트를 전달하는 경우 등에 사용합니다.

 

 

 

 

 

참고자료:

https://onlyfor-me-blog.tistory.com/374

 

https://uroa.tistory.com/43

 

https://arabiannight.tistory.com/316