Android Academy · Les

Acties en deep links

Voeg knoppen toe en open het juiste scherm.

Les 3 van 413 stappen

Acties en deep links is een gratis Android Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Android Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Android Academy bevat in totaal 4 lessen.

Acties en deep links

Meldingen worden nuttig wanneer ze iets doen. Als je op een melding tikt, moet het juiste scherm worden geopend en actieknoppen moeten snelle taken uitvoeren. Beide gebruiken PendingIntent.

Wat een PendingIntent is

Een PendingIntent is een token dat je aan het systeem geeft, zodat het later namens jou een Intent kan uitvoeren, zelfs wanneer je app niet actief is. Meldingen gebruiken dit om je activiteit te starten.

Een content-PendingIntent maken

Maak een Intent voor het scherm dat moet worden geopend, verpak deze in een PendingIntent en koppel deze met setContentIntent, zodat een tik dat scherm opent.

val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
    context, 0, intent,
    PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)

De veranderlijkheidsvlag

Sinds Android 12 moet een PendingIntent FLAG_IMMUTABLE of FLAG_MUTABLE opgeven. Geef de voorkeur aan FLAG_IMMUTABLE, tenzij het systeem gegevens moet invullen, zoals bij sommige antwoorden.

Een actieknop toevoegen

Gebruik addAction met een pictogram, een label en een PendingIntent om een knop waarop je kunt tikken aan de melding toe te voegen, zoals "Beantwoorden" of "Markeren als gelezen".

builder.addAction(
    R.drawable.ic_reply,
    "Reply",
    replyPendingIntent
)

Acties starten componenten

De PendingIntent van een actie kan gericht zijn op een Activity, Service of BroadcastReceiver. Een knop "Markeren als gelezen" is vaak gericht op een receiver, zodat deze werkt zonder een scherm te openen.

val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
    context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)

Een deep link naar een scherm

Een deep link opent een specifieke bestemming in je app, niet alleen het startscherm. Met Navigation Compose kun je een PendingIntent maken die op een exacte route uitkomt.

Een deep-link-PendingIntent maken

De Navigation-component biedt NavDeepLinkBuilder (of een deep-link-Intent met een URI) om een PendingIntent te maken die op een bestemming en de bijbehorende argumenten is gericht.

val deepLinkPending = NavDeepLinkBuilder(context)
    .setGraph(R.navigation.nav_graph)
    .setDestination(R.id.chatScreen)
    .setArguments(bundleOf("chatId" to "42"))
    .createPendingIntent()

Deep links op basis van URI's

Je kunt ook een URI-patroon in je navigatiegrafiek registreren en een Intent met die Uri maken. Als je daarna op de melding tikt, ga je rechtstreeks naar het overeenkomende scherm.

val intent = Intent(
    Intent.ACTION_VIEW,
    "myapp://chat/42".toUri(),
    context, MainActivity::class.java
)

De backstack behouden

Zorg bij deep links voor een logische backstack, zodat je met Back teruggaat naar een bovenliggend scherm in plaats van de app af te sluiten. TaskStackBuilder of de deep-link-builder van de navigatie regelt dit.

Unieke aanvraagcodes

Als je meerdere verschillende PendingIntents maakt, geef je elk exemplaar een unieke aanvraagcode, het tweede argument. Identieke intents met dezelfde code worden als dezelfde PendingIntent beschouwd.

Korte controle

Test je begrip van acties en deep links.

Samenvatting

Je hebt interactiviteit toegevoegd:

  • Met PendingIntent kan het systeem namens jou handelen; gebruik FLAG_IMMUTABLE
  • setContentIntent bepaalt de actie bij een tik
  • addAction voegt knoppen toe die activiteiten, services of receivers starten
  • Deep links openen exacte schermen met behoud van de backstack

Hierna: de runtime-toestemming voor meldingen.

Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
36
Lessen
152

Veelgestelde vragen

Is de les “Acties en deep links” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Android Academy, waaronder “Acties en deep links”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Android Academy bevat in totaal 4 lessen.

Wat leer ik in “Acties en deep links”?

Voeg knoppen toe en open het juiste scherm. Je oefent met Android Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Android Academy te beginnen?

Ervaring vooraf is niet nodig. Android Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Acties en deep links”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Android Academy?

Ja. Elke les over Android Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Meldingskanalen
  2. Een melding bouwen
  3. Acties en deep links
  4. De runtime-machtiging voor meldingen
← Terug naar Android Academy