IT이야기/Android

[Android] 어플리케이션 클래스 간단히 정리(Android Application Class)

FelixShin 2017. 4. 26. 15:59
반응형




왜 안드로이드 어플리케이션 클래스를 사용해야할까?


1. 안드로이드에서 Activity간 어떠한 클래스를 공유함은 물론 Application 객체의 멤버는 프로세스 어디에서나 참조 가능 


2. 공통으로 전역 변수를 사용하고 싶을 때 Application 클래스를 상속받아 사용할 수 있다.


Application을 상속 받아 클래스를 만들고,

TestApplication extends Application


set, get으로 값저장 한 후


// Application 에서 정보 가져와 사용 

TestApplication app = (TestApplication)getApplicationContext();

         

app.getIP();

app.getPort();




3. 안드로이드 앱이 시작하면 무조건 Application을 상속 받은 쪽을 먼저 탄다.






안드로이드 어플리케이션 메쏘드


onCreate() : 애플리케이션이 생성될 때 호출된다. 엑티비티나 서비스보다 항상 먼저 호출 되므로 진정한 진입점임.

                      응용프로그램의 시작점임으로 신속히 처리해야함. 여기서 지연되면 시작이 느려짐

onTerminate() : 애플리케이션 객체와 모든 컴포넌트가 종료될 때 호출, but, 항상 발생되지 않음. 종료처리할 때만 사용됨

onLowMemory() : 시스템이 메모리 리소스가 부족할 때 호출.

onConfigurationChanged() : 애플리케이션은 구성변경을 위해 재시작하지 않음. 변경이 필요하다면 이곳에서 핸들러를 재정의 하면 됨.





안드로이드 어플리케이션 메쏘드

Application 클래스를 상속받은 AppAplication이라는 클래스를 등록하는 방법  
: 아래처럼 AndroidManifest.xml에서 name 속성으로 등록해야함



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.memberregistration">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:name=".AppAplication"
android:theme="@style/AppTheme">
<activity android:name=".MemberRegistrationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>




참고 : 

http://developer.android.com/intl/ko/reference/android/app/Application.html

http://mainia.tistory.com/703

http://aldehyde7.tistory.com/152