>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Dúvida Criar Classe de Notificação


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.



2 Respostas


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);
}


Só confere se o código está OK (copiei de você), olha ali o ctx.getSystemService.

Jogue o método em uma classe nova, como disse acima.