2016-05-23 5 views
0

Von der offiziellen website, ich herunterladen ein Beispiel von GCM, ein Dienst ist, der die Refresh-Token erkennen kann, ist der Code wie folgt:GCM: Sollte ich InstanceIDListenerService von mir selbst in Android starten?

ist
public class MyInstanceIDListenerService extends InstanceIDListenerService { 

private static final String TAG = "MyInstanceIDLS"; 

/** 
* Called if InstanceID token is updated. This may occur if the security of 
* the previous token had been compromised. This call is initiated by the 
* InstanceID provider. 
*/ 
// [START refresh_token] 
@Override 
public void onTokenRefresh() { 
    // Fetch updated Instance ID token and notify our app's server of any changes (if applicable). 
    Intent intent = new Intent(this, RegistrationIntentService.class); 
    startService(intent); 
} 
// [END refresh_token] 
} 

Meine Frage: Soll ich einen Code zu schreiben, der starten Service von mir selbst? gerade mag:

startService(new Intent(getActivity(), MyInstanceIDListenerService.class)); 

Antwort

1

Nr Dieser Dienst gestartet wird, wenn nötig, die Google Play-Dienste. Stellen Sie sicher, dass Sie den Dienst in Ihrer AndroidManifest.xml-Datei definieren. Auch wenn Sie gerade erst anfangen, möchten Sie vielleicht einen Blick auf die leichter zu implementieren FCM werfen.

Siehe ein Beispiel von FCM here.

+0

Danke, können Sie mir mehr Details, Google Play-Dienste, wie man es startet (Welche Klasse starten es)? So wie "GcmListenerService" von "com.google.android.gms.gcm.GcmReceiver" gestartet wurde, können Sie mir sagen, wie InstanceIDListenerService gestartet wurde? – fhlkm

+0

Google Play-Dienste werden immer ausgeführt. InstanceIDListenerService würde auch von GcmReceiver gestartet werden. –

+0

Was passiert, wenn der sendRegistrationIdTo Server-Aufruf fehlgeschlagen ist? – Javanator