ANDROID/Android 앱 프로그래밍

[Android] Application 클래스

주 녕 2022. 1. 10. 20:39
728x90

MVVM 패턴을 적용한 예제 코드를 보다보면 Application 클래스를 사용하는 경우가 있다.

Application 클래스는 가장 큰 베이스 클래스라는 느낌은 오는데 정확하게 어떤 클래스인지 알아보고자 포스팅을 작성하게 되었다.

 

Application 클래스

Global application 상태를 유지(maintain)하기 위한 Base class

하위 클래스를 만들고 이 하위 클래스의 정규화된 이름을 Manifest.xml의 <application> 태그에서 "android:name" 속성으로 지정해 고유한 구현을 제공할 수 있다. Application 클래스 또는 그 하위 클래스는 application/package에 대한 프로세스가 생성될 때 다른 클래스보다 먼저 인스턴스화 된다.

 

❇️ Application 클래스는 어느 컴포넌트(Activity, Service, intent 등)에서나 공유할 수 있는 전역 class

일반적으로는 하위 클래스를 필요로 하지 않는다. 대부분 static Singleton이 동일한 기능을 제공한다.

 

Custom Application 클래스

❇️ Application 하위 클래스가 필요한 경우

  • 첫번째 Activity를 만들기 전에 실행해야 하는 특수 작업
  • 모든 컴포넌트에서 공유해야 하는 global 초기화
  • 공유 네트워크 클라이언트 객체 같은 static immutable data에 쉽게 접근할 수 있는 static 메서드

❌ mutable shared data의 경우, 언제든지 사라지거나 유효하지 않을 수 있기 때문에 Application 객체 내에 저장하면 안된다. 대신 files, SharedPreferences, SQLite와 같이 persistence strategies를 사용하는 mutable shared data는 저장해도 된다.

 

Application 클래스의 메소드

  • onCreate() : 어플리케이션이 생성될 때 호출 → 응용 프로그램의 시작점으로 신속히 처리되어야 함
  • onTerminate() : 어플리케이션 객체와 모든 컴포넌트가 종료될 때 호출됨 (항상 사용되는 것은 아님, 종료 처리할 때만 사용)
  • onLowMemory() : 시스템의 메모리가 부족할 때 호출됨

 


reference >

728x90