public class MyApplication extends android.app.Application {
public static boolean DEBUG; //현재 DEBUG 모드로 앱이 실행중인가?

@Override
public void onCreate() {
super.onCreate();
}
}

<1. Application class>


안드로이드의 Application class는 앱의 실행과 동시에 생성되는 객체로 대표적인 Singleton(앱 실행 시 오직 하나의 객체만 유지)


구조를 반영한 class 입니다. 


앱의 Main activity를 띄우기 전에 사용자 로그인 상태를 확인 한다거나 다수의 하위 객체(Activity 나 Viewmodel 등)에서 


참고할 데이터를 미리 셋팅해 두는 등 갖가지 전처리 기능을 수행 할 수 있는 class입니다. 


위 예제에서는 현재 앱이 DEBUG 모드인지 확인하는 static 변수를 가지고 있습니다. 


이는 모든 하위 객체에서 현재 DEBUG 모드로 작동중인지 확인하여 출력 log의 레벨을 결정할 수 있습니다. 



public class MainViewModel extends AndroidViewModel {
private MyApplication myApp;

public MainViewModel(Application application) {
super(application);
myApp = (MyApplication)getApplication();

}

}

<2. 하위 객체에서의 사용 예>


Application을 사용하는 하위 class입니다. Activity 나 ViewModel이나 getApplication으로 언제 어디서든 Application 객체를 사용할 수 있습니다.




주의! 


찾기 쉽고 편하다고 해서 고민없이 Application class에 attribute나 method를 밀어 넣으면 앱의 실행 시간도 길어지고


앱이 종료 될 때까지 class가 메모리에 상주하고 있기 때문에 메모리 점유율도 높아집니다. 


Application에는 충분한 검토 후 코드를 추가하세요.

+ Recent posts