Implementando uma notificação simples no Android

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 - Autenticação com Firebase Authentication
Curso de React Native - Autenticação com Firebase Authentication
CONHEÇA O CURSO

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:

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():

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()):

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:

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!

Swift - Criação de aplicações móveis para IOS Básico
Curso de Swift - Criação de aplicações móveis para IOS Básico
CONHEÇA O CURSO
Deixe seu comentário

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.