Aktionen und Deep Links
Fügen Sie Schaltflächen hinzu und öffnen Sie den passenden Bildschirm.
Aktionen und Deep Links ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Aktionen und Deep Links
Benachrichtigungen werden nützlich, wenn sie etwas bewirken. Beim Tippen sollte der richtige Bildschirm geöffnet werden, und Aktionsschaltflächen sollten schnelle Aufgaben ausführen. Beides basiert auf PendingIntent.
Was ein PendingIntent ist
Ein PendingIntent ist ein Token, das Sie an das System übergeben und mit dem es später in Ihrem Namen einen Intent ausführen kann, selbst wenn Ihre App nicht läuft. Benachrichtigungen verwenden es, um Ihre Activity zu starten.
Einen Content-PendingIntent erstellen
Erstellen Sie einen Intent für den zu öffnenden Bildschirm, verpacken Sie ihn in einen PendingIntent und fügen Sie ihn mit setContentIntent hinzu, damit ein Tipp diesen Bildschirm öffnet.
val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
context, 0, intent,
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)Das Änderlichkeits-Flag
Seit Android 12 muss ein PendingIntent entweder FLAG_IMMUTABLE oder FLAG_MUTABLE angeben. Bevorzugen Sie FLAG_IMMUTABLE, sofern das System keine Daten ergänzen muss, wie bei bestimmten Antworten.
Eine Aktionsschaltfläche hinzufügen
Verwenden Sie addAction mit einem Symbol, einer Beschriftung und einem PendingIntent, um der Benachrichtigung eine Schaltfläche hinzuzufügen, die angetippt werden kann, etwa „Reply“ oder „Mark as read“.
builder.addAction(
R.drawable.ic_reply,
"Reply",
replyPendingIntent
)Aktionen lösen Komponenten aus
Der PendingIntent einer Aktion kann eine Activity, einen Service oder einen BroadcastReceiver als Ziel haben. Eine Schaltfläche „Mark as read“ zielt häufig auf einen Receiver, damit sie funktioniert, ohne einen Bildschirm zu öffnen.
val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)Deep Linking zu einem Bildschirm
Ein Deep Link öffnet ein bestimmtes Ziel innerhalb Ihrer App und nicht nur den Startbildschirm. Mit Navigation Compose können Sie einen PendingIntent erstellen, der zu einer genau festgelegten Route führt.
Einen Deep-Link-PendingIntent erstellen
Die Navigation-Komponente bietet NavDeepLinkBuilder (oder einen Deep-Link-Intent mit einer URI), um einen PendingIntent zu erstellen, der auf ein Ziel und dessen Argumente verweist.
val deepLinkPending = NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.chatScreen)
.setArguments(bundleOf("chatId" to "42"))
.createPendingIntent()URI-basierte Deep Links
Sie können auch ein URI-Muster in Ihrem Navigationsgraphen registrieren und einen Intent mit dieser Uri erstellen. Beim Tippen auf die Benachrichtigung wird dann direkt zum passenden Bildschirm navigiert.
val intent = Intent(
Intent.ACTION_VIEW,
"myapp://chat/42".toUri(),
context, MainActivity::class.java
)Back Stack beibehalten
Stellen Sie bei Deep Links einen sinnvollen Back Stack sicher, damit die Zurück-Taste zu einem übergeordneten Bildschirm führt, statt die App zu beenden. TaskStackBuilder oder der Deep-Link-Builder der Navigation übernimmt dies.
Eindeutige Request-Codes
Wenn Sie mehrere unterschiedliche PendingIntents erstellen, geben Sie jedem einen eigenen Request-Code (das zweite Argument). Identische Intents mit demselben Code werden als derselbe PendingIntent behandelt.
Schnelltest
Testen Sie Ihr Verständnis von Aktionen und Deep Links.
Zusammenfassung
Sie haben Interaktivität hinzugefügt:
PendingIntentermöglicht es dem System, in Ihrem Namen zu handeln; verwenden SieFLAG_IMMUTABLEsetContentIntentlegt die Aktion beim Tippen festaddActionfügt Schaltflächen hinzu, die auf Activities, Services oder Receiver zielen- Deep Links öffnen genau festgelegte Bildschirme und behalten dabei den Back Stack bei
Als Nächstes: die Laufzeitberechtigung für Benachrichtigungen.
Häufig gestellte Fragen
Ist die Lektion „Aktionen und Deep Links“ kostenlos?
Ja — der vollständige Text von „Aktionen und Deep Links“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Aktionen und Deep Links“?
Fügen Sie Schaltflächen hinzu und öffnen Sie den passenden Bildschirm. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Aktionen und Deep Links“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Benachrichtigungskanäle
- Eine Benachrichtigung erstellen
- Aktionen und Deep Links
- Die Laufzeitberechtigung für Benachrichtigungen