Adicionando sinalizadores ao PendingIntent
quando passamos 0 como sinalizador para PendingIntent como abaixo:
PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);
segue regras de qualquer sinalizador significa que 0 corresponde a qualquer sinalizador por padrão.
Se criarmos outro PendingIntent como
PendingIntent pii=PendingIntent.getActivity(this, 1, i, 0);
será igual ao anterior e se eu fizer alguma alteração nos dados no Intent, agora corresponderá a novos dados no Intent ou ainda terá dados antigos.
Outro problema que estou enfrentando é tentar verificar a sinalização
PendingIntent.FLAG_NO_CREATE
Eu escrevi o seguinte código:
Intent i=new Intent(this,NotifResult.class);
i.putExtra("number",50);
PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);
NotificationCompat.Builder nb=new NotificationCompat.Builder(this);
nb.setSmallIcon(R.drawable.ic_launcher);
nb.setTicker("ticker is here");
nb.setWhen(System.currentTimeMillis())
.setContentTitle("just the title")
.setContentText("and the description")
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setContentIntent(pi);
Notification notif=nb.build();
NotificationManager nm=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(11, notif);
i.putExtra("number",80);
PendingIntent pisecond=PendingIntent.getActivity(this, 1, i, PendingIntent.FLAG_NO_CREATE);
if(pi.equals(pisecond))
Log.v("check","they are equal");
else
Log.v("check", "they are not equal");
notif.contentIntent=pisecond;
nm.notify(11, notif);
Conforme os documentos, PendingIntent.FLAG_NO_CREATE não cria nenhum novo objeto se houver um objeto existente. Estou imprimindo valor de number na atividade NotifResult, na qual o valor numérico está chegando a 80 em vez de 50 esperado, pois deve usar a intenção existente com valor antigo (conforme meu entendimento). atualize gentilmente por que a saída está chegando 80. o log está mostrando objetos sejam iguais ao esperado.
obrigado