0Pricing
Android Academy · Leçon

Actions et liens profonds

Ajoutez des boutons et ouvrez le bon écran.

Actions et liens profonds est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Actions et liens profonds

Les notifications deviennent utiles lorsqu’elles font quelque chose. Appuyer sur une notification doit ouvrir le bon écran, et les boutons d’action doivent exécuter rapidement certaines tâches. Les deux reposent sur PendingIntent.

Qu’est-ce qu’un PendingIntent ?

Un PendingIntent est un jeton que vous transmettez au système et qui lui permet d’exécuter ultérieurement un Intent en votre nom, même lorsque votre application n’est pas en cours d’exécution. Les notifications l’utilisent pour lancer votre activité.

Créer un PendingIntent de contenu

Construisez un Intent pour l’écran à ouvrir, encapsulez-le dans un PendingIntent, puis associez-le avec setContentIntent afin qu’un appui ouvre cet écran.

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

L’indicateur de mutabilité

Depuis Android 12, un PendingIntent doit spécifier FLAG_IMMUTABLE ou FLAG_MUTABLE. Préférez FLAG_IMMUTABLE, sauf si le système doit renseigner des données, comme pour certaines réponses.

Ajouter un bouton d’action

Utilisez addAction avec une icône, un libellé et un PendingIntent pour ajouter à la notification un bouton sur lequel l’utilisateur peut appuyer, par exemple « Répondre » ou « Marquer comme lu ».

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

Les actions déclenchent des composants

Le PendingIntent d’une action peut cibler une activité, un service ou un récepteur de diffusion. Un bouton « Marquer comme lu » cible souvent un récepteur afin de fonctionner sans ouvrir d’écran.

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

Créer un lien profond vers un écran

Un lien profond ouvre une destination précise dans votre application, et pas seulement l’écran d’accueil. Avec Navigation Compose, vous pouvez créer un PendingIntent qui ouvre une route exacte.

Créer un PendingIntent de lien profond

Le composant Navigation propose NavDeepLinkBuilder (ou un Intent de lien profond avec une URI) pour construire un PendingIntent ciblant une destination et des arguments.

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

Liens profonds fondés sur une URI

Vous pouvez également enregistrer un modèle d’URI dans votre graphe de navigation et créer un Intent avec cette Uri. Appuyer sur la notification redirige alors directement vers l’écran correspondant.

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

Préserver la pile de retour

Pour les liens profonds, veillez à disposer d’une pile de retour cohérente afin qu’un appui sur Retour renvoie vers un écran parent plutôt que de quitter l’application. TaskStackBuilder ou le générateur de liens profonds de la navigation s’en charge.

Codes de requête uniques

Si vous créez plusieurs PendingIntents différents, attribuez à chacun un code de requête distinct, qui constitue le deuxième argument. Des intents identiques associés au même code sont considérés comme un seul et même PendingIntent.

Vérification rapide

Vérifiez votre compréhension des actions et des liens profonds.

Récapitulatif

Vous avez ajouté de l’interactivité :

  • PendingIntent permet au système d’agir en votre nom ; utilisez FLAG_IMMUTABLE
  • setContentIntent définit l’action déclenchée par un appui
  • addAction ajoute des boutons ciblant des activités, des services ou des récepteurs
  • Les liens profonds ouvrent des écrans précis tout en préservant la pile de retour

Ensuite : l’autorisation d’exécution pour les notifications.

Questions Fréquemment Posées

La leçon « Actions et liens profonds » est-elle gratuite ?

Oui — le texte complet de « Actions et liens profonds » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Actions et liens profonds » ?

Ajoutez des boutons et ouvrez le bon écran. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Actions et liens profonds » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Canaux de notification
  2. Créer une notification
  3. Actions et liens profonds
  4. Autorisation d'exécution pour les notifications
← Retour à Android Academy