putExtra mit ausstehender Absicht funktioniert nicht
Ich geschrieben habe einen code in meinem GCMIntentservice, sendet push-Benachrichtigungen, um viele Benutzer. Ich benutze den NotificationManager, rufen DescriptionActivity Klasse, wenn die Benachrichtigung geklickt wird. Ich habe auch senden Sie die event_id form der GCMIntentService der DescriptionActivity
protected void onMessage(Context ctx, Intent intent) {
message = intent.getStringExtra("message");
String tempmsg=message;
if(message.contains("You"))
{
String temparray[]=tempmsg.split("=");
event_id=temparray[1];
}
nm= (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
intent = new Intent(this, DescriptionActivity.class);
Log.i("the event id in the service is",event_id+"");
intent.putExtra("event_id", event_id);
intent.putExtra("gcmevent",true);
PendingIntent pi = PendingIntent.getActivity(this,0, intent, 0);
String title="Event Notifier";
Notification n = new Notification(R.drawable.defaultimage,message,System.currentTimeMillis());
n.setLatestEventInfo(this, title, message, pi);
n.defaults= Notification.DEFAULT_ALL;
nm.notify(uniqueID,n);
sendGCMIntent(ctx, message);
}
Hier die event_id, ich bin immer in die oben genannte Methode ist richtige ich.e bekomme ich immer aktualisiert. Aber in dem code unten (DescriptionActivity.java):
intent = getIntent();
final Bundle b = intent.getExtras();
event_id = Integer.parseInt(b.getString("event_id"));
Die event_id hier ist immer "5" an. Egal was ich putExtra in der GCMIntentService Klasse,die event_id ich bekomme immer 5. Kann jemand bitte, das problem? Ist wegen der anstehenden Absicht? Wenn ja, dann wie soll ich damit umgehen?
InformationsquelleAutor der Frage Nemin | 2013-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
PendingIntent
wiederverwendet wird mit der erstenIntent
Sie zur Verfügung gestellt, ist das dein problem.Um dies zu vermeiden, verwenden Sie das flag
PendingIntent.FLAG_CANCEL_CURRENT
wenn Sie anrufenPendingIntent.getActivity()
tatsächlich einen neuen bekommen:Alternativ, wenn Sie wollen einfach nur aktualisieren Sie die extras, verwenden Sie das flag
PendingIntent.FLAG_UPDATE_CURRENT
InformationsquelleAutor der Antwort Joffrey
Den PendingIntent wiederverwendet wird mit dem ersten Vorsatz, den Sie, wie es war, sagte Joffrey. Sie können versuchen, verwenden die Flagge PendingIntent.FLAG_UPDATE_CURRENT.
InformationsquelleAutor der Antwort santhyago
Vielleicht sind Sie noch mit dem alten Vorsatz. versuchen Sie dies:
InformationsquelleAutor der Antwort FilipMarusca