01 Mai, 2012 19:16

Notificações em Android

Enquanto no iOS, o sistema operacional é quem gerencia a recepção de notificações, no Android é o próprio desenvolvedor que tem essa função. Ou seja, no iOS a única coisa que o desenvolvedor é responsável é que quando o seu aplicativo é aberto, há um delegate que avisa que a notificação foi recebida e a partir daí o desenvolvedor pode implementar qualquer funcionalidade que desejar.

Notificações em Android é um pouco diferente. Não há um servidor centralizador como tem a Apple, logo o desenvolvedor precisa implementar o seu servidor que gerenciará as notificações dos usuários. Com relação ao aplicativo, um modo de receber as notificações é implementar um agendador (AlarmManager) de tanto em tanto tempo (fica a critério de cada um) que faz chamadas a esse serviço para verificar se há novas notificações. Caso positivo, o desenvolvedor implementa um método que envia a notificação para o Status Bar Notifications (barra do topo do Android) do aparelho do usuário.

Mas como receber uma notificação? Segue um exemplo abaixo:

private void notificar(Context context) {
    Intent intent = new Intent(context, MinhaClasse.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

    Notification n = new Notification(R.drawable.ic_notificacao, "Notificação", System.currentTimeMillis());
    n.flags |= Notification.FLAG_AUTO_CANCEL;
    n.setLatestEventInfo(context, "Título da notificação", "Texto da notificação", pendingIntent);

    NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0, n);
}

É bem simples mesmo. Só se atente para utilizar a flag FLAG_ACTIVITY_NEW_TASK se você não chamar esse método a partir de uma Activity; caso contrário, basta passar 0 como parâmetro.

Bom pessoal, mais uma dica! Se tiverem sugestões, comentem aí! Até :)

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.