0Pricing
Android Academy · Lektion

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:

  • PendingIntent ermöglicht es dem System, in Ihrem Namen zu handeln; verwenden Sie FLAG_IMMUTABLE
  • setContentIntent legt die Aktion beim Tippen fest
  • addAction fü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

  1. Benachrichtigungskanäle
  2. Eine Benachrichtigung erstellen
  3. Aktionen und Deep Links
  4. Die Laufzeitberechtigung für Benachrichtigungen
← Zurück zu Android Academy