Hinzufügen von Flags zu PendingIntent

wenn wir 0 als Flag an PendingIntent übergeben, siehe unten:

PendingIntent pi=PendingIntent.getActivity(this, 1, i, 0);

Befolgen Sie die Regeln für Flags, bedeutet dies, dass 0 standardmäßig mit einem Flag übereinstimmt.

Wenn wir ein anderes PendingIntent als @ erstell

 PendingIntent pii=PendingIntent.getActivity(this, 1, i, 0);

wird es genauso sein wie früher und wenn ich Änderungen an den Daten in Intent vornehme, wird es jetzt neuen Daten in Intent entsprechen oder noch alte Daten haben.

Ein anderes Problem, das ich in diesem gegenüberstelle, ist, dass ich versuche, Flagge zu überprüfen

PendingIntent.FLAG_NO_CREATE

Ich habe den folgenden Code geschrieben:

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

endingIntent.FLAG_NO_CREATE erstellt kein neues Objekt, wenn ein vorhandenes Objekt vorhanden ist. Ich drucke den Wert der Zahl in der NotifResult-Aktivität, wobei der Wert der Zahl voraussichtlich 80 und nicht 50 beträgt, da die vorhandene Absicht mit dem alten Wert verwendet werden sollte (nach meinem Verständnis). Aktualisiere freundlich, warum die Ausgabe 80 erfolgt. Das Protokoll wird angezeigt Objekte müssen wie erwartet gleich sein.

Vielen Dan

Antworten auf die Frage(1)

Ihre Antwort auf die Frage