Ich bin ein Neuling bei Android. Ich habe die Android-Dokumentation gelesen, aber ich brauche noch etwas mehr Klarheit. Kann mir jemand sagen, was genau ein PendingIntent
ist?
Antworten
Zu viele Anzeigen?Schwebende Absicht
Ein Pending Intent ist ein Wrapper um einen regulären Intent, der dazu dient von einer anderen Anwendung verwendet werden soll.
Sie gibt dieser anderen Anwendung die Möglichkeit, die enthaltenen Aktion auszuführen, als wäre es Ihre Anwendung mit allen Rechten, die Ihre Anwendung gewährt wurden
Wenn Sie einige Anwendungskomponenten wie Activity/Service/BroadcastReceiver zu einem späteren Zeitpunkt oder nach einem bestimmten Zeitintervall öffnen möchten, müssen Sie in diesem Fall PendingIntent senden. Es wirkt wie eine Erlaubnis, die Sie einer anderen Anwendung gegeben haben, um den Code Ihrer Anwendung nach einer gewissen Zeit in Ihrem Namen auszuführen. PendingIntent funktioniert also über Prozessgrenzen hinweg, z. B. wenn Sie einen AlarmManager benötigen, der eine andere Anwendung in einem anderen Prozess ist, dann führt der AlarmManager eine Aktion für Ihre durch PendingIntent angegebene Anwendung aus.
Ich bin auf PendingIntents in Notifications gestoßen. Hier ist also eine einfache Erklärung:
Wir wollen eine Absicht für eine Benachrichtigung bereitstellen, in diesem Fall wollen wir eine Aktivität öffnen, die eine Kameraaufnahmefunktion durchführt. Wenn wir hier einfach ein Intent übergeben, hat der NotificationManager diese Berechtigung nicht, obwohl meine App diese Berechtigung im Manifest angegeben hat; aus diesem Grund wird die Aktion nicht funktionieren, da der NotificationManager nicht die Berechtigung dazu hat.
Aber, wenn Sie PendingIntent verwenden, wird hier die Erlaubnis, die meine App haben, anstelle von NotificationManager verwendet werden. Daher, auch wenn NotificationManager nicht über Kamera Berechtigung und meine App hat es noch öffnen Sie die Aktivität und führen Sie die App.
HINWEIS: Für eine ausstehende Absicht muss zuerst eine reguläre Absicht eingerichtet werden.
- See previous answers
- Weitere Antworten anzeigen