package com.leminity.gcmsampleapp;


import android.content.Context;

import android.content.Intent;


import com.google.android.gcm.GCMBaseIntentService;


/**

 * GCMBaseIntentService를 상속받은 클래스를 프로젝트 루트 패키지에 생성한다.

 * 클래스는 반드시 다음 조건을 충족해야 한다.

 * 

 * 1.클래스명은 GCMIntentService여야 한다.

 * 2.반드시 루트 패키지 내에 선언되어 있어아 한다.

 *  상기 1,2 조건을 만족해야 하는 이유는 라이브러리 내에서 해당 이름으로

 *  자바의 리플렉션을 통해 클래스를 생성/시작하게 되어 있다.

 * @author Leminity

 *

 */

public class GCMIntentService extends GCMBaseIntentService {


/**

* GCM Server로부터 발급받은 Project ID를 통해 SuperClass인

* GCMBaseIntentService를 생성해야한다. 

*/

public GCMIntentService() {

super(Constants.PROJECT_ID);

// TODO Auto-generated constructor stub

}


@Override

protected void onError(Context arg0, String arg1) {

// TODO Auto-generated method stub

/**

* GCM 오류 발생 시 처리해야 할 코드를 작성한다.

* ErrorCode에 대해선 GCM 홈페이지와 GCMConstants 내 static variable 참조한다. 

*/


}


@Override

protected void onMessage(Context arg0, Intent arg1) {

// TODO Auto-generated method stub

/**

* GCMServer가 전송하는 메시지가 정상 처리 된 경우 구현하는 메소드이다.

* Notification, 앱 실행 등등 개발자가 하고 싶은 로직을 해당 메소드에서 구현한다.

* 전달받은 메시지는 Intent.getExtras().getString(key)를 통해 가져올 수 있다.

*/


}


@Override

protected void onRegistered(Context arg0, String regId) {

// TODO Auto-generated method stub

/**

* GCMRegistrar.getRegistrationId(context)가 실행되어 registrationId를 발급받은 경우 해당 메소드가 콜백된다.

* 메시지 발송을 위해 regId를 서버로 전송하도록 하자.

*/


}


@Override

protected void onUnregistered(Context arg0, String arg1) {

// TODO Auto-generated method stub

/**

* GCMRegistrar.unregister(context) 호출로 해당 디바이스의 registrationId를 해지요청한 경우 해당 메소드가 콜백된다.

*/


}


}



'Android' 카테고리의 다른 글

앱 만들기 (코딩없어도 만들수 있다)  (0) 2020.09.23
GCM sample MainActivity.java 설명(주석)  (0) 2016.06.16

+ Recent posts