Como enviar parâmetros de um clique de notificação para uma atividade?

Eu posso encontrar uma maneira de enviar parâmetros para minha atividade a partir da minha notificação.

Eu tenho um serviço que cria uma notificação. Quando o usuário clica na notificação, quero abrir minha atividade principal com alguns parâmetros especiais. Por exemplo, um ID de item, para que minha atividade possa carregar e apresentar uma visualização de detalhes de item especial. Mais especificamente, estou baixando um arquivo e, quando o arquivo é baixado, quero que a notificação tenha uma intenção de que, quando clicada, abra minha atividade em um modo especial. Eu tentei usarputExtra na minha intenção, mas não consigo extrair, então acho que estou fazendo errado.

Código do meu serviço que cria a notificação:

        // construct the Notification object.
     final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());


    final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
    contentView.setImageViewResource(R.id.image, R.drawable.icon);
    contentView.setTextViewText(R.id.text, tickerText);
    contentView.setProgressBar(R.id.progress,100,0, false);
    notif.contentView = contentView;        

    Intent notificationIntent = new Intent(context, Main.class);
    notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notif.contentIntent = contentIntent;

    nm.notify(id, notif);

Código da minha atividade que tenta buscar o parâmetro extra da notificação:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);


    Bundle extras = getIntent().getExtras();
    if(extras != null){
        Log.i( "dd","Extra:" + extras.getString("item_id") );
    }

Os extras são sempre nulos e nunca recebo nada no meu log.

Btw ... oonCreate só é executado quando minha atividade começa, se minha atividade já começou eu também quero coletar os extras e apresentar minha atividade de acordo com o item_id que recebo.

Alguma ideia?

questionAnswers(12)

yourAnswerToTheQuestion