Implementando uma notificação simples no Android \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 04 Horas 

 52 Min 

 08 Seg 

   Tempo restante da oferta: 04 52 08 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Implementando uma notificação simples no Android  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

# Implementando uma notificação simples no Android

 A notificação é uma forma de informar o usuário sobre eventos do aplicativo. Veja como uma notificação pode ser implementada no Android.

 [ Daniel Viana ](https://www.treinaweb.com.br/blog/autor/daniel-viana) 10 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/07/implementando-uma-notificacao-simples-no-android.jpg)  

A notificação é uma forma de informar o usuário sobre eventos do aplicativo. Geralmente é exibida quando ele está fora da aplicação. Desta forma, elas são fortes aliadas para tornar as aplicações mais interativas e aumentar o engajamento com seu usuário.

Quando uma notificação é lançada pela aplicação, ela é tratada pelo *Notification Manager*, que possui a capacidade de exibir um ícone na área de notificação, exibir a notificação na tela, piscar a tela, vibrar o dispositivo, iniciar um alerta sonoro, exibir informações adicionais quando a área de notificação é exibida, etc.

[  ![React Native - Componentes nativos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/react-native.svg)   Curso React Native - Componentes nativos Conhecer o curso ](https://www.treinaweb.com.br/curso/react-native-componentes-nativos)

Como as notificações são formas de informar ao usuário sobre eventos da aplicação, elas são utilizadas, praticamente, por todos os aplicativos. Com este recurso o usuário não precisa abrir a aplicação para saber se novas informações foram recebidas ou se algum evento lançado por ele foi finalizado, ele consegue visualizar estes dados pela própria notificação lançada.

Ao trabalharmos com notificações, é comum implementar uma ação ao evento click. Geralmente, ao receber um click, a aplicação que lançou aquela notificação é aberta exibindo maiores detalhes. Para isso, precisamos passar para a notificação uma **PendingIntent**.

A PendingIntent especifica uma ação que será executada no futuro. Ela passa uma “futura” intent para outra aplicação e permite que esta aplicação execute a intent como se tivesse as mesmas permissões da sua aplicação. Ela é um token que você informa para uma outra aplicação, que permite que ela execute um pedaço de código com as mesmas permissões que a sua aplicação.

Ao fornecer um *PendingIntent* para outra aplicação, você garante a execução correta da operação especificada pela outra aplicação, como se fosse a sua (com as mesmas permissões e identidade).

Implementação:

```java
public void criarNotificacaoSimples(){
    int id = 1;
    String titulo = "Título da Notificação";
    String texto = "Texto da notificação Simples";
    int icone = android.R.drawable.ic_dialog_info;

    Intent intent = new Intent(this, TextoActivity.class);
    PendingIntent p = getPendingIntent(id, intent, this);

    NotificationCompat.Builder notificacao = new NotificationCompat.Builder(this);
    notificacao.setSmallIcon(icone);
    notificacao.setContentTitle(titulo);
    notificacao.setContentText(texto);
    notificacao.setContentIntent(p);

    NotificationManagerCompat nm = NotificationManagerCompat.from(this);
    nm.notify(id, notificacao.build());
}

private PendingIntent getPendingIntent(int id, Intent intent, Context context){
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(intent.getComponent());
    stackBuilder.addNextIntent(intent);

    PendingIntent p = stackBuilder.getPendingIntent(id, PendingIntent.FLAG_UPDATE_CURRENT);
    return p;
}

```

No método `criarNotificacaoSimples()`, inicialmente, temos a criação de todas as variáveis que serão usadas para criar e configurar a notificação. O `id` que irá identificar a notificação, o título, texto e ícone que serão exibidos nela. E no fim deste trecho, é criada a Pending Intent, retornada pelo método `getPendingIntent()`:

```java
int id = 1;
String titulo = "Título da Notificação";
String texto = "Texto da notificação Simples";
int icone = android.R.drawable.ic_dialog_info;

Intent intent = new Intent(this, TextoActivity.class);
PendingIntent p = getPendingIntent(id, intent, this);

```

Em seguida, no mesmo método, temos a criação e a configuração das propriedades da notificação. Para criá-la, é utilizado a Classe de compatibilidade *NotificationCompat* e assim é possível configurar o ícone (`setSmallIcon()`), o título da notificação (`setContentTitle()`), o conteúdo (`setContentText`) e a intent que será disparada ao clicar sobre a notificação (`setContentIntent()`):

```java
NotificationCompat.Builder notificacao = new NotificationCompat.Builder(this);
notificacao.setSmallIcon(icone);
notificacao.setContentTitle(titulo);
notificacao.setContentText(texto);
notificacao.setContentIntent(p);

```

E para exibir a notificação para o usuário, precisamos de um gerenciador de notificações, no caso o `NotificationManagerCompat`, ele será responsável por exibir a notificação para o usuário através do `notify()` passando por parâmetro o `id` que identificará a notificação e a notificação criada anteriormente:

```java
NotificationManagerCompat nm = NotificationManagerCompat.from(this);
nm.notify(id, notificacao.build());

```

Agora você já é capaz de implementar uma notificação no seu app. o/

Um abraço e até a próxima!

[  ![Android - Utilizando Material Design nas aplicações](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/android.svg)   Curso Android - Utilizando Material Design nas aplicações Conhecer o curso ](https://www.treinaweb.com.br/curso/utilizando-material-design-em-aplicacoes-android)

- [ #Android ](https://www.treinaweb.com.br/blog/tag/android)
- [ #Mobile ](https://www.treinaweb.com.br/blog/tag/mobile)
- [ #Notificação ](https://www.treinaweb.com.br/blog/tag/notificacao)

Autor

 ![Daniel Viana](//secure.gravatar.com/avatar/ee77d0cb4491d2d130f9f1093aabff4f?d=mm)

## Daniel Viana

 Instrutor, Desenvolvedor Android, Mestrando em Bioinformática pela UFMG, MBA Executivo em Gerenciamento de Projetos pela UCAM, Graduado em Ciência da Computação pela FUNIP, Membro da SBC, ACM e AB3C. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/daniel-viana)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/05142558/mediator-pattern-com-mediatr-no-asp-net-core-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     7 anos atrás

    ##  [ Mediator Pattern com MediatR no ASP.NET Core ](https://www.treinaweb.com.br/blog/mediator-pattern-com-mediatr-no-asp-net-core) 

     Manter os objetos isolados é o objetivo do Mediator Pattern. No ASP.NET Core a sua implementação é facilitada com a biblioteca MediatR.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/inje--o-400x280.jpg)  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) 

     10 anos atrás

    ##  [ Entendendo injeção de dependência ](https://www.treinaweb.com.br/blog/entendendo-injecao-de-dependencia) 

     Aprenda o que é injeção de dependência e como o princípio da inversão de dependência é importante para diminuir o acoplamento dos seus códigos.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/07/refatorando-codigo-php-para-strategy-pattern-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     10 anos atrás

    ##  [ Refatorando código PHP para Strategy Pattern ](https://www.treinaweb.com.br/blog/refatorando-codigo-php-para-strategy-pattern) 

     Veremos nesse artigo o padrão de projeto Strategy em PHP, aplicaremos refatoração para implementá-lo na resolução um determinado problema.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/lendo-dados-do-excel-via-dde-no-java-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ Lendo dados do Excel via DDE no Java ](https://www.treinaweb.com.br/blog/lendo-dados-do-excel-via-dde-no-java) 

     Aprenda como ler dados do Excel via DDE no Java, utilizando a biblioteca JDDE da Pretty Tools.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2017/06/novidades-do-android-o-para-desenvolvedores-400x280.png)  [ Android ](https://www.treinaweb.com.br/blog/categoria/android) 

     10 anos atrás

    ##  [ Novidades do Android O para desenvolvedores ](https://www.treinaweb.com.br/blog/novidades-do-android-o-para-desenvolvedores) 

     O Google está a todo vapor para lançar o Android O. Porém, antes mesmo do lançamento oficial, já é possível conferir as novidades.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/09/CACHE-DISTRIBUÍDO-ASP-NET-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     6 anos atrás

    ##  [ Implementando cache distribuído no ASP.NET Core ](https://www.treinaweb.com.br/blog/implementando-cache-distribuido-no-asp-net-core) 

     Veja como é simples implementar cache distribuído no ASP.NET Core, utilizando o Redis ou o SQL Server.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/09/cache-memória-asp-net-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     6 anos atrás

    ##  [ Implementando cache de memória no ASP.NET Core ](https://www.treinaweb.com.br/blog/implementando-cache-de-memoria-no-asp-net-core) 

     A performance de um site pode ser um favor determinante para o seu sucesso ou fracasso, veja como melhorar isso no ASP.NET Core com cache de memória.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/05/autenticação-jwt-em-api-jax-rs-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     7 anos atrás

    ##  [ Implementando autenticação baseada em JWT em uma API RESTful JAX-RS ](https://www.treinaweb.com.br/blog/implementando-autenticacao-baseada-em-jwt-em-uma-api-restful-jax-rs) 

     Segurança é um item essencial e uma forma de limitar o acesso da aplicação é através de autenticação, que uma API JAX-RS pode implementar através do JWT.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/25105828/DJANGO-AUTENTICAÇÃO-2-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     8 anos atrás

    ##  [ Implementando autenticação no Django – Parte 2 ](https://www.treinaweb.com.br/blog/implementando-autenticacao-no-django-parte-2) 

     Veja neste artigo como implementar os recursos de logout, alteração de senha e proteção de páginas em projetos Django.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/21114028/DJANGO-AUTENTICAÇÃO-1-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     8 anos atrás

    ##  [ Implementando autenticação no Django - Parte 1 ](https://www.treinaweb.com.br/blog/implementando-autenticacao-no-django-parte-1) 

     A autenticação é uma das principais funcionalidades em um sistema. É com ela que protegemos as funcionalidades de uma aplicação e permitimos que estas só sejam acessadas por usuários cadastrados e autenticados previamente. Nesta série de artigos, veremos como implementar os principais recursos do módulo de autenticação do Django.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/03/29132239/PROTOCOLO-TUS-400x280.png)  [ C# ](https://www.treinaweb.com.br/blog/categoria/csharp) 

     8 anos atrás

    ##  [ Implementando o protocolo tus em uma aplicação ASP.NET Core ](https://www.treinaweb.com.br/blog/implementando-o-protocolo-tus-em-uma-aplicacao-asp-net-core) 

     Realizar o upload de grandes arquivos pode ser uma dor de cabeça, mas o protocolo tus foi criado para facilitar este processo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/05/NEST-JS-UPLOAD-ARQUIVOS-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     3 anos atrás

    ##  [ Cron jobs, timeouts e intervals com NestJS ](https://www.treinaweb.com.br/blog/cron-jobs-timeouts-e-intervals-com-nestjs) 

     Neste artigo vamos utilizar o módulo nativo scheduler do NestJS para trabalhar com tarefas automatizadas com cron jobs, timeouts e intervals

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **04h 52min 08s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
