0

Ich möchte einen geeigneten Bildschirm öffnen, wenn meine App von der Benachrichtigung gestartet wird. Ich habe ein Szenario gefunden, in dem es nicht so funktioniert, wie ich es mir vorgestellt habe.FCM auf Android löst "onNewIntent" nicht aus, wenn App zuvor von Benachrichtigung gestartet wurde

hier ist also erste Szenario, wenn es funktioniert, wie es funktionieren sollte:

  1. App von Launcher-Symbol gestartet wird
  2. App ist gesetzt in den Hintergrund
  3. FCM Meldung erscheint
  4. Beim Anklicken onNewIntent der Standardaktivität wird aufgerufen.

Aber als App zuerst von FCM Benachrichtigung gestartet wird dann 4. Schritt nie passiert:

  1. FCM-Meldung zeigt bis
  2. App von FCM Benachrichtigung gestartet wird
  3. App in
  4. Hintergrund gesetzt wird
  5. Eine weitere FCM-Meldung erscheint
  6. Nach dem Klicken onNewIntent der Standardaktivität wird nicht genannt

Ich fand es wirklich problematisch, mit zu arbeiten und gegen zu kodieren. Ist das ein Fehler oder ich vermisse gerade etwas?

BEARBEITEN: Die Standardaktivität launchMode ist in der Manifestdatei auf singleTask eingestellt.

Antwort

0

Mit Bezug auf die vorherige Antwort wird onNewIntent für Aktivitäten aufgerufen, die launchMode auf "singleTop" setzen.

Als erstes sollten Sie die Manifest-Datei einrichten. Legen Sie den LaunchMode der Aktivität auf singleTop fest. Eine andere Sache ist das Hinzufügen eines Intent-Filters mit einem Aktionstag.

Beispiel:

<activity android:name="youPackage.YourActivity" 
      android:launchMode="singleTop"> 
    <intent-filter> 
     <action android:name="youPackage.ACTION"> 
    </intent-filter> 
</activity> 

Und in Ihrem Dienst, können Sie neue Absicht nennen vorgesehen, um die Aktion, die Sie in den Intent-Filter definieren.

Beispiel:

Intent i = new Intent("youPackage.ACTION"); 

Referenz:

Verwandte Themen