2016-05-13 10 views
0

Ich benutze Push-Benachrichtigungen und sie funktionieren gut, wenn ich in der App bin. Aber wenn App im Hintergrund ist. Wenn eine Benachrichtigung eintrifft, muss ich es onMessageRecieved gehen, weil ich wie ein Zustand bin Einrichtung:Nicht gehen onMessageReceived, wenn die App geschlossen ist

public class MyGcmListenerService extends GcmListenerService { 

private static final String TAG = "MyGcmListenerService"; 
@Override 
public void onMessageReceived(String from, Bundle data) { 
    String message = data.getString("message"); 
    String type = data.getString("type"); 
    Log.d(TAG, "From: " + from); 
    Log.d(TAG, "Message: " + message); 
    Log.d(TAG, "Type: " + type); 
    sendNotification(message, type); 
} 
private void sendNotification(String message, String type) { 
    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this); 
    //Set all notifcation properties etc 

    if (type.equals(Constants.GROUP_NOTIFICATION)) { 
     Intent intent = new Intent(this, MainActivity.class); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    }else { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.putExtra(Keys.NOTIFICATION_TYPE, Constants.QUESTION_NOTIFICATION); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    } 
} 
} 

für die Benachrichtigung Frage drücken, wenn es um die mainactivity kommt durch Absichtsdaten Überprüfung es shoud zum questionActivity umgeleitet werden, aber da Absicht Daten werden nie gesetzt, sie bleiben in der Hauptaktivität. Also meine Frage ist, wie bekomme ich Daten aus der Benachrichtigung?

+0

Sie verwenden GCM-Service? –

+0

meine Frage bearbeitet –

Antwort

0

Nun, da ich keine Antworten auf meine Post bekommen habe, habe ich das Problem selbst herausgefunden. Habe etwas gesucht und herausgefunden, dass es zwei Arten von Nutzlasten gibt. Daten und Benachrichtigungen Und wenn Sie die Benachrichtigungsnutzlast haben, als wenn Ihre App im Hintergrund ist. Android erstellt selbst eine Benachrichtigung und ruft onMessageRecieved nicht auf. Also ging ich zu meinem Server-Code und entfernte einfach den Benachrichtigungs-Payload-Teil :) und jetzt wird onMessage Received aufgerufen.

Verwandte Themen