Criando Notificações
Nesse capitulo nos iremos um pouco de como trabalhar com um componente muito interessante chamado Notifications.
As notificações permitem alertar ao usuario que algum evento aconteceu mesmo que ele esteja utilizando ou não a nossa aplicação. Quando é disparada uma notificação ela aparece na barra de tarefas do device.
Vamos criar um novo projeto, vamos adicionar um Button na nossa activity_main.xml que vai criar o noso notification e vamos criar a referencia do nosso button no MainActivity.
Para criarmos notificações que sejam compativeis com todas as versões android nos iremos utilizar a classe chamada NotificationCompat.
Vamos agora realizar as seguintes alterações na nossa MainActivity.
O Metodo criarNotificacao ele vai criar a nossa notificação e exibir para o usuario.
Primeiro nos criamos uma classe chamada PendingIntent, ela é a nossa intent que vai ser aberta quando o usuario clicar na nossa notificação, o primeira parametro que essa classe recebe atraves do metodo getActivity é o contexto da nossa aplicação, o segundo parametro nos não iremos utilizar mas ele basicamente é um valor que podemos colocar para utilizar em um metodo chamado onActivityForResult, como não estamos utilizando esse metodo podemos colocar esse valor como 0, o terceiro parametro é a nossa intent que vai ser executada, ou seja, a nossa activity que vai ser aberta quando o usuario clicar na nossa notificação, e o ultimo parametro nos iremos colocar o enum FLAG_UPDATE_CURRENT que significa que se ja ouver uma PendingIntent para essa mesma activity ela vai ser atualizada.
Agora nos criamos o nosso objeto do tipo NotificationCompat.Builder, esse objeto sera a nossa notificação. Para exibir a nossa notificação nos temos que chamar o metodo notify de uma classe chamada NotificationManagerCompat.
Abaixo segue a tabela de algumas propriedade que podemos colocar na nossa notificação.
Atributo | Descrição |
---|---|
setSmallIcon | Define um icone para a nossa notificação, a imagem ter que ser 24dp x 24dp (obrigatorio) |
setContentTitle | Titulo da nossa notificação (obrigatorio) |
setContentText | Descrição da nossa notificação (obrigatorio) |
setTicker | Texto exibido assim que a notificação chega ao aparelho |
setWhen | Hora que sera exibida a notificação |
setAutoCancel | Define se a notificação deve ser removida ao clicar nela |
setContentIntent | PendingIntent que contem a intent que sera chamada ao clicar na notificação |
setDeleteIntent | PendingIntent que contem a intent que sera chamada ao remover uma notificação |
setSound | Atribui um som personalizado a notificação |
setVibrate | Define o tempo em milissegundos que o nosso device vai vibrar quando a notificação aparecer para o usuario |
addAction | Permite adicionar ate 3 ações que podem realizar tarefas diferentes da que é realizada ao clicar na notificação |
setContentInfo | Texto que aparecera ao lado direito da notificação |
setNumber | Numero que aparecera ao lado direito da notificação |
setLargeIcon | Imagem para ser exibida em destaque ao lado esquerdo da notificação |
setStyle | Define um estilo para a notificação |
setVisibility | Determina a visibilidade da notificação na tela de bloqueio |
setColor | Define a cor do icone da notificação |
setSubText | Texto opcional para a terceira linha da notificação |