Ações e links diretos
Adicione botões e abra a tela correta.
Ações e links diretos é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Ações e links diretos
As notificações se tornam úteis quando fazem alguma coisa. Tocar em uma delas deve abrir a tela correta, e os botões de ação devem executar tarefas rápidas. Ambos dependem de PendingIntent.
O que é um PendingIntent
Um PendingIntent é um token que você entrega ao sistema, permitindo que ele execute um Intent em seu nome mais tarde, mesmo quando seu aplicativo não estiver em execução. As notificações o usam para iniciar sua atividade.
Criando um PendingIntent de conteúdo
Crie um Intent para a tela que deve ser aberta, envolva-o em um PendingIntent e associe-o com setContentIntent para que um toque abra essa tela.
val intent = Intent(context, MainActivity::class.java)
val pending = PendingIntent.getActivity(
context, 0, intent,
PendingIntent.FLAG_IMMUTABLE
)
builder.setContentIntent(pending).setAutoCancel(true)O sinalizador de mutabilidade
Desde o Android 12, um PendingIntent deve especificar FLAG_IMMUTABLE ou FLAG_MUTABLE. Prefira FLAG_IMMUTABLE, a menos que o sistema precise preencher dados, como acontece com algumas respostas.
Adicionando um botão de ação
Use addAction com um ícone, um rótulo e um PendingIntent para adicionar à notificação um botão que possa ser tocado, como "Responder" ou "Marcar como lida".
builder.addAction(
R.drawable.ic_reply,
"Reply",
replyPendingIntent
)As ações acionam componentes
O PendingIntent de uma ação pode ter como destino uma Activity, um Service ou um BroadcastReceiver. Um botão "Marcar como lida" geralmente tem como destino um receptor, para funcionar sem abrir nenhuma tela.
val markIntent = Intent(context, MarkReadReceiver::class.java)
val markPending = PendingIntent.getBroadcast(
context, 0, markIntent, PendingIntent.FLAG_IMMUTABLE
)Criando um link direto para uma tela
Um link direto abre um destino específico dentro do seu aplicativo, não apenas a tela inicial. Com o Navigation Compose, você pode criar um PendingIntent que chega a uma rota exata.
Criando um PendingIntent de link direto
O componente Navigation oferece NavDeepLinkBuilder (ou um Intent de link direto com uma URI) para criar um PendingIntent direcionado a um destino e a argumentos.
val deepLinkPending = NavDeepLinkBuilder(context)
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.chatScreen)
.setArguments(bundleOf("chatId" to "42"))
.createPendingIntent()Links diretos baseados em URI
Você também pode registrar um padrão de URI no seu gráfico de navegação e criar um Intent com essa Uri. Ao tocar na notificação, o usuário será direcionado diretamente para a tela correspondente.
val intent = Intent(
Intent.ACTION_VIEW,
"myapp://chat/42".toUri(),
context, MainActivity::class.java
)Preservando a pilha de navegação
Para links diretos, garanta uma pilha de navegação adequada, para que pressionar Voltar retorne a uma tela pai em vez de sair do aplicativo. TaskStackBuilder ou o criador de links diretos da navegação cuida disso.
Códigos de solicitação exclusivos
Se você criar vários PendingIntents diferentes, atribua a cada um um código de solicitação distinto, que é o segundo argumento. Intent idênticos com o mesmo código são tratados como o mesmo PendingIntent.
Verificação rápida
Teste sua compreensão sobre ações e links diretos.
Recapitulação
Você adicionou interatividade:
PendingIntentpermite que o sistema aja em seu nome; useFLAG_IMMUTABLEsetContentIntentdefine a ação do toqueaddActionadiciona botões direcionados a atividades, serviços ou receptores- Links diretos abrem telas exatas com a pilha de navegação preservada
A seguir: a permissão de execução para notificações.
Perguntas Frequentes
A aula “Ações e links diretos” é grátis?
Sim — o texto completo de “Ações e links diretos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Ações e links diretos”?
Adicione botões e abra a tela correta. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Ações e links diretos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Canais de notificação
- Criando uma notificação
- Ações e links diretos
- A permissão de notificação em tempo de execução