Android: PendingIntent von Notification löst onCreate () nicht aus, wenn Activity zurück auf den Bildschirm gebracht wird

8

denke ich habe einige Missverständnisse mit den Absichtsflaggen. Was ich versuche zu tun ist, ich habe ein Radio-Streaming-Anwendungen, die zwei Aktivitäten (PlayerApplication und SettingsScreen) hat. Ich habe eine Service.class für Streaming, die im Hintergrund läuft, die auch eine Benachrichtigung enthält (Sie können die Wiedergabe im Benachrichtigungs-Overlay-Menü und der PlayerApplication stoppen / starten). Wenn der Benutzer auf die Benachrichtigung klickt, sollte die PlayerApplicationActivity auf den Bildschirm zurückkehren.

Alles funktioniert, erwarte den Fall: Der Benutzer öffnet SettingsScreenActivity - & gt; öffnet NotificationOverlayMenu - & gt; Klicks bei Benachrichtigung - & gt; PendingIntent wird zu PlayerApplicationActivity

fortgesetzt

Jetzt ist PlayerApplicationScreen da, aber ich kann nichts anklicken. Ich sehe, dass die onCreate () meiner PlayerApplication nicht ausgelöst wird, wenn ich von Notification fortfahre. Aber das Layout sieht gut aus (auch in onCreate () aufgebläht)

Ich habe folgenden PendingIntent in der Service.class verwendet:

%Vor%

Eigentlich sollte der PendingIntent die Aktivität (wenn sie bereits läuft) zurück nach oben bringen. Benutze ich falsche Intents oder verpasse ich einen Punkt?

BEARBEITEN: und ich habe launchMode in Manifest.xml deklariert

%Vor%     
longilong 05.03.2013, 16:27
quelle

2 Antworten

1

Ich habe gerade herausgefunden, was ich falsch gemacht habe:

  1. Für meinen Zweck habe ich den falschen launchMode verwendet. Richtig ist singleTop nicht singleTask

  2. Ich habe den launchMode in <application-node> anstelle von <activity-node>

    deklariert %Vor%
longilong 07.03.2013, 18:26
quelle
6

Nach Angaben des Android-Entwicklers Website , in FLAG_ACTIVITY_CLEAR_TOP , FLAG_ACTIVITY_SINGLE_TOP und im Startmodus: SingleTask , Wenn die Instanz der Aktivität, die Sie aufrufen, bereits ausgeführt wird, rufen Sie onNewIntent() method auf, anstatt eine neue Instanz zu erstellen. Ich denke, Sie sollten diese Bedingung überprüfen, dass Ihre Aktivität ausgeführt wird, wenn onCreate () nicht aufruft.

    
android guy 05.03.2013 17:17
quelle