Traz mesmo retorno sempre

Pessoal, eu tenho essa classe Notificação que recebe as mensagens GCM enviada para meu aplicativo android:

public class NotificationCustomUtil 
{
	private static NotificationManager mNotificationManager;
	
	public static void sendNotification(Context context, String title, String author, String message)
	{
        	mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

	        
        		Intent itNotificacao = new Intent(context, NotificacaoComunicado.class);
	        	Bundle params = new Bundle();
        	
	        	params.putString("mensagem", message);
        		params.putString("titulo", title);
        		itNotificacao.putExtras(params);
	}
}

E ela direciona para uma activity que tem um textView que vai exibir a mensagem:

@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.notificacao);
		
		Bundle bundle = getIntent().getExtras();
		
		String mensagem = bundle.getString("mensagem");
      }

O problema é que qdo envio a mensagem, na primeira vez chega normal. Na segunda vez (quando envio outro texto), ele mostra o primeiro texto, assim:

  • [Envio] message: “teste” [Recebo] message: “teste”
  • [Envio] message: “123” [Recebo] message: “teste”

Na primeira vez chega “teste”, na segunda também chega “teste”.
Na classe NotificationCustomUtil sempre chega certo. Mas na activicty quando faço isso: bundle.getString(“mensagem”); ele traz errado o valor.

Alguem sabe pq?

Quando você cria a notificação, provavelmente tá fazendo uma PendingIntent, certo? Lá, você está usando uma flag que mantém o mesmo objeto na memória. Basta trocar essa flag.

Posta a classe que dispara a notificação, onde você provavelmente usa um NotificationBuilder.

que flag seria essa? Seriam uma dessas:
FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT

Sim.

deu certo. Mudei para essa flag FLAG_UPDATE_CURRENT e funcionou certinho. Valeu