Ich habe eine Vordergrunddienstbenachrichtigung, die beim Klicken eine Aktivität starten sollte. Diese Aktivität ist sehr kurzlebig, bevor sie finish() aufruft.Benachrichtigung pendingInteent contentIntent schlägt fehl, wenn Aktivitätsaufrufe beendet werden()
Das erste Mal, wenn die Benachrichtigung es das zweite Mal funktioniert geklickt wird, und danach bekomme ich den Fehler:
Sending contentIntent failed: android.app.PendingIntent$CanceledException
In meinem Code, wenn die Vordergrundservicemeldung Erstellen habe ich die randomActivity.class geändert Eine andere Aktivitätsklasse, die nicht als Ziel bezeichnet wird und bei jedem Klick funktioniert. Von:
Intent notificationIntent = new Intent(this, RandomActivity.class);
zu:
Intent notificationIntent = new Intent(this, HomeActivity.class);
Adaequat ...
habe ich den Standard-Benachrichtigungscode aus der Android Developers-Website, sowie Testen sie mit Benachrichtigung Builder verwendet. Ich bekomme trotzdem das gleiche Ergebnis. Es funktioniert perfekt, es sei denn, die Aktivität ruft finish() auf;
Ist dieses erwartete Verhalten, ein Fehler, oder fehlt mir etwas?
Ich danke Ihnen im Voraus für Sie Hilfe und hoffentlich eine Lösung!
Hinweis: Der von mir verwendete Benachrichtigungscode ist vollständig standardisiert, daher habe ich ihn nicht veröffentlicht. RandomActivity ruft finish() auf; in onCreate, also ist auch nichts Ungewöhnliches dort zu sehen.
Ich stimme @brandall zu. Wenn Sie Aktionsschaltflächen verwenden, sollte die notificationID immer noch den requestCode aus dem contentIntent und keiner der Aktionsabsichten verwenden. – fahmad6