Ich habe einen Code in meinem GCMIntentservice geschrieben, der Push-Benachrichtigungen an viele Benutzer sendet. Ich verwende den NotificationManager, der die DescriptionActivity-Klasse aufruft, wenn auf die Benachrichtigung geklickt wird. Ich schicke auch die event_id die GCMIntentServiceputExtra mit ausstehender Absicht funktioniert nicht
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 zum DescriptionActivity bilden, die ich in dem oben genannten Verfahren immer korrekt heißt ich die aktualisierte man immer bekommen. Aber in dem folgenden Code (DescriptionActivity.java):
intent = getIntent();
final Bundle b = intent.getExtras();
event_id = Integer.parseInt(b.getString("event_id"));
Die event_id hier ist immer "5". Egal, was ich putExtra in der GCMIntentService-Klasse, die Ereignis-ID, die ich bekomme, ist immer 5. Kann jemand bitte auf das Problem hinweisen? Ist das wegen der ausstehenden Absicht? Wenn ja, wie soll ich damit umgehen?
Vielen Dank Mann! Es hat funktioniert :) – Nemin
Awesome Antwort! Vielen Dank. –
Wenn es nicht klar war: PendingIntent pi = PendingIntent.getActivity (this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); – Alecs