Notificações criando lollipop android

12 partes:Ele gera uma simples notificação para o primeiro item na listaCriar uma notificação com um item de ação para o segundoEle garante que o fluxo de trabalho é mantida em navegar entre as atividadesUsando um PendingIntent de actividade regularUsando um PendingIntent para uma atividade especialAprenda a alterar as notificações para o terceiro itemRemover notificações quando considerar necessárioCriar uma notificação de que se expande para o próximo itemCriar uma notificação com uma barra de progressoDefine alerta de notificação para Android 5Define o nível de notificações de segurançaIntegra todas as notificações criadas até agora

Você está desenvolvedor Android e você quer aprender a criar notificações na sua aplicação? Então este livro é para você. Nós mostramos-lhe como criar simples notificações, ações do usuário definidos nas notificações, excluir e atualizar notificações, use as barras de progresso dentro deles, criar maneiras de expandir o seu conteúdo, evitar anomalias na navegação do usuário e muito mais.


O artigo é baseado numa aplicação chamada de exemplo Notimax, que consiste em uma lista de itens, onde pressionando cada, verá uma notificação com uma função específica para o usuário. Vamos ver como os eventos associados construir à medida que avança na agenda, observando códigos de amostra e ilustrações.



passos

1
Seja claro sobre o conceito de notificações no Android. As notificações são auxílios visuais para alertá-lo sobre eventos importantes que ocorreram enquanto não visualizabas de interface de seus aplicativos. Por exemplo, a aplicação gmail envia notificações na interface externa do Android para relatar que chegou a um novo e-mail por um contato. Isto permite-lhe aceder rapidamente a notificação de visualizar o que aconteceu ou mesmo decidir instantaneamente que ação tomar em questão.
  • As notificações serão exibidos pela primeira vez na área de notificação como um ícone, que deve ser descritivo o suficiente para identificar intuitivamente o que está acontecendo.
  • Para ver os detalhes da notificação basta arrastar o gaveta de notificação para baixo. Isso será exibido acumulada notificações até agora:


  • 2
    Saiba mais sobre o projeto de uma notificação. notificações do Android consistem em quatro partes principais: O título da notificação, a conteúdo ou mensagem, ícone representante da aplicação e timestamp ocorrência. No entanto, você pode adicionar mais itens como uma foto ao lado do ícone combinado, um número que representa a quantidade quantitativamente notificações semelhantes agrupados, botões de ação, etc.
  • Criar o ícone da sua notificação Estúdio Android. Estúdio Android tem uma ferramenta para criar ícones de recursos gráficos personalizado. Para criar uma ícones de notificação simplesmente ir para a pasta drawable seus recursos, pressione o botão direito, selecione a opção novo e selecione Ativo de imagem.

  • Isto irá mostrar uma ferramenta chamada de ativos Studio, onde há um número de configurações para escolher a base de recursos de seus ícones.
  • Ir para o tipo de ativo drop-down e selecione a opção Ícones de Notificação para se referir aos tipos de notificação. Imediatamente o assistente irá configurar o recurso selecionado no momento é o ícone do aplicativo padrão, a assumir a forma de um ícone de notificação (o guia diz iconografia Android deve ser 24dp x24dp plana branco à moda).
  • Agora selecione a imagem png você projetou em opção Arquivo de imagem. Você também pode alterar o nome na opção Nome do recurso. Depois de definir a estrutura do recurso prima próximo. Isto irá exibir um assistente que lhe diz diretórios drawable que julgar necessárias para apoiar ícones notificações em plataformas Android que necessitam de tratamento especial.
  • imprensa acabamento e você tem seus ícones prontos para acessá-los.


  • 3
    Criar um novo projeto no Android Studio. A primeira coisa que você vai fazer é criar um novo projeto no Android Studio. Para isso veja arquivo gt; Novo projeto ... e afirma que quer um atividade principal em branco (Atividade em branco.) Termina e passa para a próxima etapa.
  • 4
    Crie uma lista e de um adaptador simples. O padrão de projeto de sua atividade é baseada em um ListView você fornece várias opções para emitir notificações ao sistema. Porque o design de cada item de lista É simples (um TextView), Então você pode criar uma instância de um ArrayAdapter receber uma matriz cordas com suas escolhas.
  • Dadas estas condições claras, o projeto de sua atividade principal consiste em um tipo de nó raiz :
  • Agora só você deve obter a lista e criar o nosso simples adaptador. Vamos ver:

    ...ArrayAdapter lista adaptador ListView privado-privado -... @ -setContentView vazio Overrideprotected onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) (R.layout.activity_main) - // Obter o listalist = (ListView) findViewById (R.id .lista) - // cria itens itemsString conteúdo = {"simples notificação","Notificação + Ação","+ Notificação de atualização","+ Aviso de Notificação","Notificação + Progress","Notificação Big Vista"} - // Cria adaptadoradapter = new ArrayAdapter(Este, android.R.layout.simple_list_item_1, itens) - // Relacionar-se com adaptador listalist.setAdapter (adaptador) -list.setOnItemClickListener (this) -notifyMgr = (NotificationManager) getSystemService (NOTIFICATION_SERVICE) -} public notification1 void ( int id, int IconId, título string, conteúdo de string) {NotificationCompat.Builder construtor = new NotificationCompat.Builder (this) .setSmallIcon (IconId) .setLargeIcon (BitmapFactory.decodeResource (getResources (), R.drawable.girl_avatar_48x48)). setContentTitle (título) .setContentText (conteúdo) .setColor (getResources () getColor (R.color.Dark).) - // Construir a notificação e emitirlanotifyMgr.notify (id, builder.build ()) -} notificação2 public void (int id, int IconId, título string, conteúdo de string) {// Criar o construtor builderNotificationCompat.Builder = new NotificationCompat.Builder (this) .setSmallIcon (IconId) .setLargeIcon (BitmapFactory.decodeResource (getResources (), R.drawable.girl_avatar_48x48) ) .setContentTitle (título) .setContentText (conteúdo) .setColor (getResources () getColor (R.color.Dark)) -. // nova instância de intenções apontou para EslabonIntent intenção = new Intent (this, Eslabon.class) - / / Criar pilaTaskStackBuilder StackBuilder = TaskStackBuilder.create (this) - // Adicionar padrestackBuilder.addParentStack atividade (Eslabon.class) - // Referenciando intenção para notificaciónstackBuilder.addNextIntent (intenção) - // Get PendingIntent resultante da pilaPendingIntent resultPendingIntent = StackBuilder. getPendingIntent (0, PendingIntent.FLAG_UPDATE_CURRENT) - // Atribuição pendente intentbuilder.setContentIntent (resultPendingIntent) - // Remover aviso ao interagir com ellabuilder.setAutoCancel (true) - // Construir a notificação e emitirlanotifyMgr.notify (id, builder.build ()) -} / * Utilize este código para tentar um vazio notificação2 ESPECIALpublic ATIVIDADE (id int, int IconId, título string, conteúdo string) Intent.FLAG_ACTIVITY_CLEAR_TASK) -PendingIntent pendingIntent = PendingIntent.getActivity (this, 0, intenção, pendingIntent .FLAG_UPDATE_CURRENT) - // Atribuição pendente intentbuilder.setContentIntent (pendingIntent) - // Construir a notificação e emitirlanotifyMgr.notify (id, builder.build ()) - * / notification3 public void () {string GRUPO_NOTIFICACIONES = "notificaciones_similares"-Notification Aviso - // Verifique se fosse pressionada a itemif (segundaVez!) {Notificação = new NotificationCompat.Builder (this) .setContentTitle ("nova mensagem") .setSmallIcon (R.drawable.ic_stat_msg) .setContentText ("Carlos Blueberry Onde você está?") .setColor (GetResources () getColor (R.color.Dark)) setVisibility (NotificationCompat.VISIBILITY_PUBLIC) .build () - .. // Ativar banderasegundaVez = escambo} else {notificação = new NotificationCompat.Builder (this). setContentTitle ("2 novos lugares") .setSmallIcon (R.drawable.ic_stat_msg) .setNumber (2) .setColor (getResources (). GetColor (R.color.Dark)). SetStyle (nova NotificationCompat.InboxStyle (). AddLine ("Carlos Blueberry Se você viu?") .addLine ("logotipo Ximena Noel redesenhado") .setBigContentTitle ("2 novos lugares")) SetGroup (GRUPO_NOTIFICACIONES) .setGroupSummary (true) .build () -.} NotifyMgr.notify (3, aviso prévio) -} notification4 public void (int id, int IconId, título String, conteúdo de string) {// Estruturação notificaciónNotificationCompat .Builder builder = new NotificationCompat.Builder (this) .setSmallIcon (IconId) .setContentTitle (título) .setContentText (conteúdo) .setColor (getResources () getColor (R.color.Dark).) setVisibility (NotificationCompat.VISIBILITY_PUBLIC). - // cria intentIntent intenção = new Intent (this, MainActivity.class) -intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK) - // Criar pendentes intentPendingIntent fullScreenPendingIntent = PendingIntent.getActivity (this, 0, intenção, PendingIntent.FLAG_CANCEL_CURRENT) - // Assign e estabelecer uma verdadeira intenção de notificar quando avisobuilder.setFullScreenIntent (fullScreenPendingIntent, true) - // Construir a notificação e emitirlanotifyMgr.notify (id, builder.build ()) -} public void notification5 (id int final, int IconId, título string, conteúdo String) {fim NotificationCompat.Builder construtor = new NotificationCompat.Builder (este) .setSmallIcon (IconId) .setContentTitle (título) .setContentText (conteúdo) .setColor (getResources () getColor (R.color.Dark).) - novo thread (new Runnable () {@Overridepublic void run () {int i - / * // ciclo para simular progresofor (i = 0- i lt; = 100- i + = 5) {// Certifique-se de definir 100% como máximabuilder.setProgress medida (100, i, false) - // Emita o notificaciónnotifyMgr.notify (id, builder.build ()) - // Delay execução hilotry {// Atraso 1sThread.sleep (1000) -} catch (InterruptedException e) {Log.d (TAG, "sono Falha (1000) ") -}} * // * ATUALIZAÇÃO mensagem de sucesso * /// AVISO Unfold para terminarbuilder.setContentText ("Indicador de atividade") // Remova a barra progreso.setProgress (0, 0, true) -notifyMgr.notify (id, builder.build ()) -}}) start () -.} Notification6 public void (int id, int IconId, String titulo, conteúdo de string) {intenção intenção = new Intent (this, Eslabon.class) -intent.setAction (Intent.ACTION_VIEW) -PendingIntent piDismiss = PendingIntent.getActivity (this, 0, intenção, PendingIntent.FLAG_UPDATE_CURRENT) -NotificationCompat.Builder mBuilder = new NotificationCompat.Builder (this) .setSmallIcon (IconId) .setLargeIcon (BitmapFactory.decodeResource (getResources (), R.drawable.girl_avatar_48x48)). setContentTitle (título) .setContentText (conteúdo) .setColor (getResources (). GetColor (R.color.Dark)). setStyle (nova NotificationCompat.BigTextStyle (). bigText (conteúdo + "Se nós queremos" +"encontrar amanhã e eu vou mostrar o" +"detalhes da aplicação")). Addaction (R.drawable.ic_stat_respond,"RESPONDER", PiDismiss) .addAction (R.drawable.ic_stat_ignore,"IGNORE", Nulo) .setAutoCancel (true) -Notification notificação = mBuilder.build () - // Construir a notificação e emitirlanotifyMgr.notify (id, notificação) -} @ Overridepublic vazio onItemClick (AdapterViewlt; gt; pai, Vista, int? posição, longa id) {Log.d (TAG, "onItemClick (): artigo" + Position) -switch (posição) {case 0: notification1 (1 R.drawable.ic_stat_msg,"Ximena Noel",": D Agora eu tenho o novo logotipo!") -break De Caso 1: notificação2 (2 R.drawable.ic_stat_msg,"Ximena Noel",": D Agora eu tenho o novo logotipo!") -break-Case 2: notification3 () - break-case 3: notification4 (4, R.drawable.ic_stat_alert,"urgente","Confirmar reunião de negócios com Carlos") -break De Caso 4: notification5 (5, android.R.drawable.stat_notify_sync,"A sincronização de aplicativos","progresso") -break-Case 5: notification6 (6, R.drawable.ic_stat_msg,"Ximena Noel",": D Agora eu tenho o novo logotipo ...!") -}} @ Overridepublic boolean onCreateOptionsMenu (menu Menu) {getMenuInflater () inflar (R.menu.menu_main, menu) -Retornar verdade -.} @ Boolean Overridepublic onOptionsItemSelected (item de MenuItem) {int id = item.getItemId () - if (id == R.id.action_cancel) {// Opção para cancelar todas as notificações emitidasnotifyMgr.cancelAll () - retorno de escambo super.onOptionsItemSelected} return (item) -}}
    Artigos Relacionados