Middle
Was ist PendingIntent?
sobes.tech KI
Antwort von AI
Ein PendingIntent ist ein Token, das einer anderen Anwendung die Möglichkeit gibt, einen Teil des Codes im Namen Ihrer Anwendung mit Ihren Berechtigungen auszuführen.
Es wird verwendet für:
- Benachrichtigungen (Starten einer Aktivität beim Klicken auf die Benachrichtigung).
- Desktop-Widgets (Verarbeitung von Benutzerklicks).
- Planungsdienste (wiederkehrende Aufgaben mit AlarmManager).
Hauptunterschiede zu einem normalen Intent:
PendingIntentwird an eine andere Anwendung übergeben.PendingIntentbehält die Berechtigungen der ursprünglichen Anwendung.
Typen von PendingIntent:
getActivity(): Zum Starten einerActivity.// Erstellen eines PendingIntent zum Starten einer Activity val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService(): Zum Starten einesService.// Erstellen eines PendingIntent zum Starten eines Service val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): Zum Senden einer Broadcast-Nachricht.// Erstellen eines PendingIntent zum Senden eines Broadcasts val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
Flags von PendingIntent, die das Verhalten beeinflussen:
| Flag | Beschreibung |
|---|---|
FLAG_ONE_SHOT |
Der PendingIntent kann nur einmal verwendet werden. |
FLAG_NO_CREATE |
Wenn der PendingIntent nicht existiert, nicht erstellen, null zurückgeben. |
FLAG_CANCEL_CURRENT |
Wenn bereits ein PendingIntent mit demselben Intent existiert, abbrechen und neu erstellen. |
FLAG_UPDATE_CURRENT |
Wenn bereits ein PendingIntent mit demselben Intent existiert, seine Extras aktualisieren. |
FLAG_IMMUTABLE |
Der PendingIntent kann von anderen Anwendungen nicht geändert werden (empfohlen). |
Bei Verwendung von PendingIntent ist es wichtig, eindeutige Request-Codes (zweites Argument in den Methoden getActivity, getService, getBroadcast) anzugeben, um sie zu unterscheiden.