본문 바로가기
Android

[ Android ] Android에서 전역 상태 관리: Application 클래스 활용하기

by quessr 2024. 3. 25.

 

시스템바 알림 기능을 구현하는 과정에서, 알림 시간을 표현하기 위해 "오전"과 "오후"와 같은 문자열 값을 리소스에서 불러오려면 context가 필요했다.
하지만 Utils 클래스에서는 context를 직접 참조할 수 없었다.
이 문제를 해결하기 위해 WallPadApp.java 클래스에서 context를 반환하는 함수를 사용했다.
이 과정에서 WallPadApp 클래스의 목적과 그 안에 정의된 함수나 값들이 어떻게 분류되어 있는지에 대한 궁금증이 생겼다.

WallPadApp 클래스를 살펴보니, 이는 Application 클래스를 상속받아 커스터마이즈되어 있었다. 
공식문서를 찾아보니,

전역 애플리케이션 상태를 유지하기 위한 기본 클래스입니다. 하위 클래스를 생성하고 이 하위 클래스의 정규화된 이름을 "android:name"AndroidManifest.xml <application>태그의 속성으로 지정하여 자체 구현을 제공할 수 있습니다. Application 클래스 또는 Application 클래스의 하위 클래스는 애플리케이션/패키지에 대한 프로세스가 생성될 때 다른 클래스보다 먼저 인스턴스화됩니다.

 

다음과 같이 설명이 되어있었는데, 조금 더 이해하기 쉽게 다시 말해 보자면
Application 클래스는 안드로이드 앱의 전역 상태를 관리하는 역할을 한다.
앱이 실행될 때 가장 먼저 생성되며, 앱 전체에 걸쳐 필요한 공유 데이터나 상태를 관리하거나 초기화 작업을 수행하는 데 사용되는 기본 클래스이다.


따라서
 WallPadApp 클래스는 애플리케이션 전역에서 관리해야 할 함수나 값들을 보관하고, 필요에 따라 이를 제공하는 역할을 한다.
이 클래스를 통해 애플리케이션의 다양한 부분에서 필요한
 context에 접근할 수 있게 되었고, 이는 Utils 클래스 같이 context를 직접 참조할 수 없는 경우에 매우 유용하다.
WallPadApp 클래스가 Application 클래스를 상속받음으로써, 애플리케이션 전역에서 필요한 리소스나 데이터를 효율적으로 관리할 수 있게 된 것 이다.

 


참고 : https://developer.android.com/reference/android/app/Application