>
Olá .
Gostaria de criar uma classe para centralizar algumas notificações de minha aplicação Android só que estou com algumas dúvidas .
Para usar a classe NotificationManager obrigatoriamente minha classe tem que estender (extends) de Activity ??
Eu queria criar uma classe com alguns métodos que invoquem os métodos da Classe Notification para realizar as notificações. Mas dá dando erro.
Obrigado.
Wesley.
Complementando o item anterior, pra ficar mais clara minha dúvida .....
Gostaria de criar a classe abaixo a qual tem um método criarNotificacao que deverá ser invocado a partir de outra classe.
public class Notificacao extends Activity {
@Override
protected void onCreate(Bundle icicle){
super.onCreate(icicle);
}
protected void criarNotificacao(String titulo, String texto){
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification nt = new Notification(R.drawable.ic_launcher,"Notificação de Tarefa",System.currentTimeMillis());
nt.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this,TarefaActivity.class),0);
nt.setLatestEventInfo(this, titulo, texto, pi);
notificationManager.notify(0,nt);
}
}
Opa
Crie uma classe nova, sem herança.
Ai crie um método criarNotificacao(String titulo, String texto)
Só que quando você usar dentro dela o getSystemService, não terá acesso, pois ele precisa de um context, que pode vir da activity.
Com isso, faça o método assim: criarNotificacao(Context ctx, String titulo, String texto)
Algo como isso:
public void criarNotificacao(Context ctx, String titulo, String texto){
NotificationManager notificationManager = (NotificationManager)ctx.getSystemService(NOTIFICATION_SERVICE);
Notification nt = new Notification(R.drawable.ic_launcher,"Notificação de Tarefa",System.currentTimeMillis());
nt.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this,TarefaActivity.class),0);
nt.setLatestEventInfo(this, titulo, texto, pi);
notificationManager.notify(0,nt);
}