2013-02-02 4 views
2

내가 원하는에서 MainActivity 내부 메소드를 호출 할 때 의 onMessage()내부 GCMIntentService.java 상기 의 onMessage (의해 수신 된 새로운 메시지)blinkLED (라는 방법) 내부MainActivity.java 그래서 blinkLED() 메서드는 에 의해 수신 된 데이터를 사용할 수 있습니다., 어떻게 구현할 수 있습니까? 샘플 코드가 도움이 될 것입니다.GCM의 onMessage()

+1

GCIMntentService 내부에서 blinkLED() 메소드를 호출하려는 이유는 무엇입니까? 가장 좋은 방법은 sotring 값에 대해 SharedPreferences를 사용하고 blinkLED()를 호출하거나 Activity onResume의 SharedPreferences에서 값을 가져 와서 Activity가 시작될 때 최신 값을 표시하는 것입니다. –

답변

6

BroadcastReceiver를 사용하십시오. 이 tutorial은 클래스에서 브로드 캐스트 인 텐트를 보내는 방법과 다른 클래스에서 처리하는 방법을 보여줍니다. 당신의 MainActivity에서 다음

Intent intent = new Intent(); 
intent.setAction("com.my.app.blinkled"); 
sendBroadcast(intent); 

, 당신은 브로드 캐스트 리시버 구현 :

짧은 예를 들어, 당신의 GCMIntentService에 ::의 onMessage()이있을 수 있습니다

private class MyBroadcastReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    blinkLED(); 
    } 
} 

과에 등록 MainActivity의 onResume() :

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction("com.my.app.blinkled"); 
receiver = new MyBroadcastReceiver(); 
registerReceiver(receiver, intentFilter); 
+0

감사합니다. 나를위한 답안 작업 –