2016-04-06 7 views
0

Ich habe die Klasse RegistrationIntentService implementiert, die IntentService erweitert und das Gerät Token innerhalb onHandleIntent bekommt.Push-Benachrichtigungen mit GCM - Wann starten Sie den IntentService?

Meine Frage ist, wann sollte ich diesen Dienst starten? Wenn ich es einfach über MainActivity starte, wenn die App gestartet wird, wird onHandleIntent nicht aufgerufen. Was und wann ist der richtige Weg, um die Absicht zu beginnen?

Antwort

0

Werfen Sie einen Blick auf GCM's project MainActivty auf GitHub, sehr einfach & Einfach.

Um genau zu sein, müssen Sie RegistrationIntentSerice nennen, wenn checkPlayServices() wahr ist ..

private boolean checkPlayServices() { 
    GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); 
    int resultCode = apiAvailability.isGooglePlayServicesAvailable(this); 
    if (resultCode != ConnectionResult.SUCCESS) { 
     if (apiAvailability.isUserResolvableError(resultCode)) { 
      apiAvailability.getErrorDialog(this, resultCode, PLAY_SERVICES_RESOLUTION_REQUEST) 
        .show(); 
     } else { 
      Log.i(TAG, "This device is not supported."); 
      finish(); 
     } 
     return false; 
    } 
    return true; 
} 

Nach der Erklärung checkPlayServices() Methode Sie wahr wenn es überprüfen müssen und den Dienst ausführen:

if (checkPlayServices()) { 
     // Start IntentService to register this application with GCM. 
     Intent intent = new Intent(this, RegistrationIntentService.class); 
     startService(intent); 
    } 
+0

Meine Implementierung ist nicht viel anders. Ich rufe 'startService (intent) 'von' MainActivity' auf, aber 'onHandleIntent' wird nie aufgerufen –

Verwandte Themen