Добавление флагов в PendingIntent
когда мы передаем 0 в качестве флага PendingIntent, как показано ниже:
PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);
соответствует ли оно каким-либо правилам флагов означает, что 0 соответствует любому флагу по умолчанию.
Если мы создадим еще один PendingIntent как
PendingIntent pii=PendingIntent.getActivity(this, 1, i, 0);
будет ли он таким же, как раньше, и если я внесу какие-либо изменения в данные Intent, теперь он будет соответствовать новым данным в Intent или все еще будет иметь старые данные.
Другая проблема, с которой я сталкиваюсь, это то, что я пытаюсь проверить флаг
PendingIntent.FLAG_NO_CREATE
Я написал следующий код:
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);
Согласно документам, PendingIntent.FLAG_NO_CREATE не создает никаких новых объектов, если существует объект existign. Я печатаю значение числа в действии NotifResult, где числовое значение становится 80, а не 50 ожидаемым, поскольку оно должно использовать существующее намерение со старым значением (согласно моему пониманию). Пожалуйста, обновите, почему вывод приходит 80. Журнал показывает объекты должны быть равны, как ожидалось.
Спасибо