2014-06-23 3 views
0

1 년 전부터 Android 개발자입니다.하지만 기기간에 통신하는 앱 (GET 및 POST 호출) 만 한 적이 없습니다.기기와 Google 클라우드 메시징 간의 실시간 통신

나는 안드로이드 네이티브 (Cocos2D-x 또는 게임 엔진 아님)에서 카드 게임을 만드는 것에 대해 생각하고 있습니다.

기기 간 통신 방법은 GCM이지만 게임 로직을 어떻게 처리 할 수 ​​있는지 완전히 이해하지 못했습니다.

@Override 
protected void onRegistered(Context context, String registrationId) { 

    Log.i(TAG, "onRegistered: registrationId=" + registrationId); 
} 

@Override 
protected void onUnregistered(Context context, String registrationId) { 

    Log.i(TAG, "onUnregistered: registrationId=" + registrationId); 
} 

@Override 
protected void onMessage(Context context, Intent data) { 


} 

@Override 
protected void onError(Context arg0, String errorId) { 

    Log.e(TAG, "onError: errorId=" + errorId); 
} 

내 질문은 :

나는 클래스 GCMIntentService가 무시 수 있다는 것을 알고 내가 onMessage()에있는 모든 게임 로직을 개발해야합니까? 예를 들어 주시겠습니까?

미리 감사드립니다. 당신은 활동 (귀하의 경우 아마도 게임) 시작하려면

+2

의 onMessage은 단지 방법이다 FLAG_UPDATE_CURRENT 플래그 대신 PendingIntent를 사용하여 GCM에 대한 브로드 캐스트는 장치간에 메시지가있을 때마다 호출됩니다. 논리의 나머지 부분은 거기에있을 필요는 없지만 – Saqib

+0

이 필요하면 onMessage에서 호출 할 수 있습니다. 즉, 게임과 상호 작용하는 논리입니다. .. 예 : 나는 {card : "4"}를받습니다 ... 나는 내 현재 활동/조각으로 보내야합니까? –

+0

그것이 필요한 곳은 명백합니다! – Saqib

답변

0

: 시작된 활동의 경우

@Override 
protected void onMessage(Context context, Intent data) { 

    Intent intent= new Intent(context, MainActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    intent.setAction(Long.toString(System.currentTimeMillis())); 
    intent.putExtra(xxx,xxx); //try to put the require information from data intent 
    context.startActivity(intent); 
} 

+0

하지만 활동을 따라 그들 사이에서도 의사 소통을해야합니다. –

+0

@Rafa Firenze :이 주제가 도움이 될 수 있습니다. http://stackoverflow.com/questions/4300291/example-communication-between-activity-and-service-using - 메시지 – hungr

+0

좋아요, 그렇다면 메시지의 종류에 따라 게임의 모든 논리를 제어해야한다는 의미입니다. 예를 들어, 게임 내 무료 객실을 알리면 방안에 있다면 놀고 ... 서비스에서 의도로 데이터를 보내면 논리가 바로 처리됩니다. 맞습니까? –