UroA 개발 블로그

[Android] Application Class란? + 활용 본문

Programming/Android

[Android] Application Class란? + 활용

UroA 2015. 12. 22. 14:29

[Android] Application Class 란?



안드로이드에서 Application Class란 어플리케이션 컴포넌트들 사이에서 공동으로 멤버들을 사용할 수 있게 해주는 편리한 공유 클래스를 제공합니다.


어플리케이션 사이의 컴포넌트들이 공동으로 사용할 수 있기 때문에 공통되게 사용하는 내용을 작성해주면 어디서든 context를 이용한 접근이 가능 합니다.


객체들이 공동으로 접근가능하게 만들려면 Application class 를 상속받습니다. 그리고 필수 함수를 구현하고 사용자가 원하는 기능을 추가합니다. 두번째는 AndroidManifest.xml 에 상속받아 만든 class 를 추가합니다.



<사용방법>

1) Application Class를 상속받는 Class를 만든다.

2) AndroidManifest.xml에 Application Class name을 추가 한다.

3) 어플리케이션 내의 컴포넌트들 사이에서 context를 이용한 접근이 가능하다. (Data 공유)



Application Class 사용법


< MyApplication.java >

package com.mycompany.myapp;
 
import android.app.Application;
import android.content.Context;
 
public class MyApplication extends Application {
 
    @Override
    public void onCreate(){
        super.onCreate();
 
 
    }
}


MyApplication.java를 새로 생성하신 다음, AndroidManifest.xml의 Application 태그에 추가하면 끝


android:name=".MyApplication"


Application Class 활용법


1. Application Class에서 static으로 선언한 전역변수는 언제 어디서나 접근,수정이 가능합니다.
 간단한 예시로, 로그인 액티비티에서 사용자의 아이디와 닉네임을 서버로부터 받아 왔습니다. 이 두 값을 언제 어디서나, 다른 액티비티와 서비스에서도 불러와서 사용하고 싶습니다. 이럴 경우에 Application Class 에 static으로 아이디와 닉네임 String 전역변수를 만들어 주시면 됩니다.


< MyApplication.java >

package com.mycompany.myapp;
 
import android.app.Application;
import android.content.Context;
 
public class MyApplication extends Application {
 
    public static String user_id;
    public static String user_nick;
 
    @Override
    public void onCreate(){
        super.onCreate();
 
 
    }
}


그 다음, 로그인을 담당하는 Activity에서 이 변수에 값을 저장해 줍시다.


MyApplication.user_id = ID;
MyApplication.user_nick = NICKNAME;


이제부터 아이디와 닉네임을 어디에서나 사용할 수 있습니다. 다른 액티비티에서 아이디와 닉네임 값을 불러오고 싶다면,


String USERID = MyApplication.user_id;
String USERNICK = MyApplication.user_nick;


이렇게만 사용해주시면 됩니다.



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

 이번에는 값의 저장과 접근이 아닌 메서드의 호출을 알아보겠습니다.



< MyApplication.java >


package com.mycompany.myapp;
 
import android.app.Application;
import android.content.Context;
import android.widget.Toast;
 
public class MyApplication extends Application {
 
    @Override
    public void onCreate(){
        super.onCreate();
 
    }
 
    public void showToast(String message){
       Toast.makeText(this,message,Toast.LENGTH_LONG).show();
    }
}


위처럼 간단히 전달받은 문장을 출력하는 showToast 메서드를 만들었습니다.앞으로 저 메서드에 값만 전달해주며 호출하면 Toast가 뜨게 됩니다. 물론 별로 유용하지는 않은 메서드지만, 이는 간단한 예시일 뿐, Log를 txt로 저장하고, 기기의 네트워크 상태를 가져오는 등, 반복적으로 호출될 일이 있는 메서드의 경우에는 더욱 이 방법이 유용합니다.


그럼 Application Class 에서 만든 메서드를 호출하는 방법을 알아보겠습니다.


MyApplication MYAPP = (MyApplication) getApplication();
MYAPP.showToast("Method Called :D");


액티비티에서 Application의 메서드를 호출하고 싶으시다면 위의 코드를 이용하면 됩니다

Comments