Anwendung stürzt ab, wenn die Nachricht von GCM zum ersten Mal empfängt, nachfolgende Nachrichten werden ohne Fehler verarbeitet

StackOverflow https://stackoverflow.com//questions/12684361

Frage

Ich habe zwei Anwendungen auf meinem Emulator installiert.Die App "Manager" sendet eine Nachricht an GCM.Die andere App namens "Scheduler" empfängt die Nachricht und zeigt dem Benutzer eine Benachrichtigung an.

Wenn ich beide Anwendungen gleichzeitig auf dem Emulator läuft, funktioniert die Manager-App in Ordnung.Die Scheduler-App stürzt jedoch ab, nachdem er GCMIntentService verarbeitet, onMessage(); Dies geschieht nur auf der ersten Nachricht.Alle verbleibenden Nachrichten werden verarbeitet, ohne dass der Antrag abstürzt.

Im Logcat werden keine Fehler ausgedruckt.

Fragen

    .
  1. Gibt es eine Ausnahmeabwicklung für Gcmintentservice?
  2. Wenn die App nicht sichtbar ist und GcmintimentService eine Funktion zum Öffnen einer Aktivität aufruft.Kann das das Programm abstürzen?
  3. Wenn ich zwei Apps habe, die gleichzeitig auf dem Emulator läuft, könnte dies ein Problem mit dem Emulator sein?

    Hier ist der GCMINTENTISTENREIVE-Code: generasacodicetagpre.

War es hilfreich?

Lösung

Es gab zwei Probleme mit dem Code, der dieses Problem erstellt hat.

    .
  1. Ich hatte keine Bedingung, die überprüft wurde, ob Event_ID_FROM_Server in der Anwendung null oder leer war.

  2. Wenn Sie eine Nachricht an GCM senden, dürfen sie nicht null oder "" sein.Das stürzt den Dienst ab. So musste ich diese Bedingung in der PHP für Nachrichten erstellen, die keine ID hatten:

    wenn (! $ ID || $ id=="") {

        $fields = 
    array(
    'registration_ids' => $registrationIDs, 
    'data' => array("message" => $message), 
    'delay_while_idle'=> false,
    'collapse_key'=>'core_update'
    );
    
    
    
    }else{
    
    $fields = 
    array(
    'registration_ids' => $registrationIDs, 
    'data' => array("message" => $message,"server_id"=>$id), 
    'delay_while_idle'=> false,
    'collapse_key'=>'core_update'
    );
    
    }
    

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top