Notificações com NotificationCompat. Push Message Android - Parte 2

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Android /Notificações com NotificationCompat. Push Message Android - Parte 2

Notificações com NotificationCompat. Push Message Android - Parte 2

Vinícius Thiengo17/08/2015
(1888) (12) (79) (2)
Go-ahead
"Se você está planejando em fazer alguma coisa diferente, você será criticado por causa disso. Tenha fé de que o que você está fazendo é o certo e bloqueie qualquer negatividade."
Herb Kelleher
Código limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Comprar Livro
Conteúdo Exclusivo
Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Opa, blz?

Dando continuidade a série de vídeos sobre Push Message no Android, nesse vídeo apresento algumas maneiras de utilizar a feature de notificações no Android, mais precisamente a classe NotificationCompat, que nos permite trabalhar da mesma forma (em termos de código) na API 21 ou superior quanto em APIs mais antigas.

Notification é uma entidade importante quando utilizando serviços de push message, pois muitas vezes a existência do push message é apenas para informar sobre conteúdo novo disponível, porém para informar é necessário o Notification que printa parte da informação na status bar do device (ou notification area). Além de trabalhar junto ao serviço de push message, o Notification também pode ser utilizado para serviços de stream, como no uso de arquivos mp3 com o MediaPlayer, vinculado a um service. O Notification nesse caso permitiria que o controle do audio fosse utilizado no área de notificações quando a tela estivesse não na lock screen e também quando em lock screen. Como apresentado também no vídeo, é possível utilizar até três action buttons junto a notification com o intuito de adiantar tarefas no background, os action buttons têm principalmente essa funcionalidade, permitir o user realizar tarefas frequentes (ou urgentes para a continuidade da tarefa atual em tela, por exemplo) com apenas um clique e sem a necessidade de abrir um Activity para isso.

No vídeo é apresentado como trabalhar com uma pilha virtual de Activities (utilizando a TaskStackBuilder), que mesmo não aparentando, tem uma importância alta na definição de Activities que vão além da Activity principal da APP na chamada via Notification e não são construídas no AndroidManifest.xml como Activities "especiais" (abertas apenas via Notification). Pois a pilha virtual permiti que o caminho normal seguido pelo user para abrir a Activity (quando entrando pela APP via home screen icon) ainda seja utilizado, porém utilizado na volta da Activity, tendo em mente que ela foi aberta diretamente via Notification. Apresento também a interface da Notification com o progress para download / upload de conteúdo e também como utilizar layouts personalizados como RemoteViews.

No vídeo busco apresentar somente o push message ativando o Notification e as várias formas de utilizar o Notification (mesmo que ainda tendo mais formas), logo a aplicação das entidades de push message e Notification ainda não estão em um contexto, por exemplo: um APP Android de mensagens instataneas. A contextualização das features vai vir com vídeos futuros da série. Sem mais delongas vou deixar você assistir ao vídeo.

Bugs. : aparentemente o bug do atributo excludeFromRecents ainda não foi resolvido. O problema do script de visibilidade de notificação aparentemente também é um bug, mas esse não encontrei nada relatado que realmente é um bug, logo no próximo vídeo provavelmente vai ter a correção dele.

GitHub do projeto: https://github.com/viniciusthiengo/push-message-serie

GitHub da parte Web do projeto: https://github.com/viniciusthiengo/push-message-serie-web

Segue link da PlayList da série:

Push Messages Android

Segue links das páginas utilizadas na construção do vídeo:

Página da classe NotificationCompat.Builder

Página tutorial de implementação de Notification, na documentação do Android

Página de Design Notification a partir do Material Design

Página de Design Notification abaixo do Material Design

Página documentação dos atributos da tag <activity>

Material Design Icons

Página de referência dos atributos do lado servidor no script de comunicação via push message GCM

Página / resposta no stackoverflow com implementação dos scripts de Vibrate, Sound e LED no Notification

Vlw

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

ContextMenu no RecyclerView. Material Design Android - Parte 17ContextMenu no RecyclerView. Material Design Android - Parte 17Android
Volley, Gson e RetryPolicy em Material Design Android Série APPVolley, Gson e RetryPolicy em Material Design Android Série APPAndroid
TextInputLayout e Envio de Email no Android com PHPMailer e AWS SESTextInputLayout e Envio de Email no Android com PHPMailer e AWS SESAndroid
GCM Downstream Messages. Push Message Android - Parte 1GCM Downstream Messages. Push Message Android - Parte 1Android

Compartilhar

Comentários Facebook

Comentários Blog (12)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
fernandescf15 (1) (0)
01/08/2016
Td thiego?
Bm espero que sim!
Olha eu estou acompanhando a sua série de vídeo e estou um pouco atrasado por causa do seguinte problema:
Eu acompanho os seus vídeos, e tudo bem eu entendo tudo,  mas depois de duas semanas ou uma eu esqueço tudo (sei que aí você deve estar pensando e só praticar cara) e que mesmo praticando muito eu me esqueço,  e acabo por não ter tempo para prosseguir com os estudos!
E então eu gostaria de saber como voce faz para ter esse todo conteúdo na sua cabeça (E que esta muito difícil assim,  porque acabo por voltar no mesmo ponto e assim não estou fazendo nada)!
Responder
Vinícius Thiengo (0) (0)
02/08/2016
Fala Fernandes, blz?
Não se preocupe em esquecer, até mesmo autores renomados da computação voltam aos livros para lembrar de uma coisa ou outra.

Minha dica para vc fixar o conhecimento é desenvolver algo que tem em mente, digo, uma APP. Mesmo sem saber mt ainda, dessa forma vc terá de estudar focado em algumas partes para implementar sua APP e assim o conhecimento flui.

Quando aprendi Android e a desenvolver Web foi exatamente assim. Tive ideias em mente e então estudei o que precisava para implementá-las. Tente assim, de repente funciona contigo tb. Abraço
Responder
guilherme.carvalho.carnei (1) (0)
02/04/2016
Como fazer para a mensagem "quebrar" linha conforme o tamanho da tela do device?
Responder
Vinícius Thiengo (0) (0)
03/04/2016
Fala Guilherme, blz?
Tente essa solução: http://tips.androidhive.info/2015/04/android-showing-push-notification-in-multiline/

Abraço
Responder
Elvis de Lima (1) (0)
16/09/2015
olá Thiengo, blz? você poderia me dizer uma boa hospedagem para meu servidor php?
Responder
Vinícius Thiengo (0) (0)
17/09/2015
Fala Elvis, blz sim.
Se não tiver tempo para estudar o Linux e outras coisas importantes na instalação e utilização do AWS (Amazon Web Service), veja os planos da Locaweb, UOL Host e Hostgator. Hj o Blog roda na Locaweb. Abraço
Responder
19/09/2015
Amigo, eu uso a wihost..  Muito boa.
Responder
brizioalmeida2013 (2) (0)
24/08/2015
muito obrigado, agora com essa lib Picasso, eu consegui o que queria a um bom tempo, consegui que a cada post, ou atualização de post. a notificação vai com a imagem destacada, em largeicon muito bom thiengo, valeu por mais esse insinamento.
Responder
20/08/2015
Muito bom o Tutorial porem tenho uma duvida quando ao mensagem por puch. Por exemplo supondo que o usuário esteja com a wifi e serviço 3g desabilitado, se dermos o post na pagina do google que é responsável por enviar a mensagem para o aplicativo, o aparelho não vai receber essa mensagem, porem quando ligar a wifi, o servidor envia essa mensagem certo? Vamos supor que eu envio 2 mensagens as duas mensagem serão recebidas quando ligar a wifi? ou somente a ultima?
Responder
Vinícius Thiengo (0) (0)
21/08/2015
Fala Augusto, blz?
No primeiro caso é isso mesmo, depois que a conexão voltar a mensagem será entregue, mas isso tb depende do atributo time_to_live que é responsável por informar ao Google até quanto tempo a mensagem deve ficar amarzenada nos servidores deles até ser entregue ou descartada. O tempo máximo é de 4 semanas, se o user não conseguir uma conexão de Internet no tempo definido em time_to_live, a mensagem será perdida.

No caso de enviar duas mensagens se serão ambas entregues ou apenas uma, essa é uma questão que tb envolve atributo do lado servidor, porém um atributo diferente, o collapse_key, utilizando ele somente a ultima mensagem é que será entregue, porém o comportamento padrão é sem ele, logo as duas menagens serão salvas no GCM para serem entregues, a problemática reside que o Google não garante a ordem das entregas, logo, se isso importa, pode ser que vire uma bagunça. Abraço
Responder
21/08/2015
Certo.
Aonde consigo ver e aplicar essas configurações?
Responder
Vinícius Thiengo (0) (0)
22/08/2015
Augusto, essas configurações ficam em seu script do lado servidor, igual fiz no vídeo. Veja a variável $options desse link (https://github.com/viniciusthiengo/push-message-serie-web/blob/master/package/apl/AplUser.php) - é o projeto no GitHub. Abraço
Responder