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
fortgesetztJetzt 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% 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.
Tags und Links android android-intent android-notifications android-pendingintent