点击通知打开意图(附加额外)

时间:2013-09-03 10:54:47

标签: android android-intent notify

在我的应用上,我发布了一些通知 通知有标题和文本。 当用户单击通知时,我必须打开一个显示标题和通知全文的活动。 如果我只有一个通知,那么它很好,但如果点击时有2个或更多通知(具有不同的ID),我打开具有相同标题和文本(第一个通知)的活动 我怎么能传递正确的价值? 抱歉英文不好

public void sendSimpleNotification(String titolo, String testo, String imgUrl, int id) {

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this.getApplicationContext());

        // Titolo e testo della notifica
        notificationBuilder.setContentTitle(titolo);
        notificationBuilder.setContentText(testo);

        // Testo che compare nella barra di stato non appena compare la notifica
        notificationBuilder.setTicker("Nuova offerta dall'Online app");

        // Data e ora della notifica
        notificationBuilder.setWhen(System.currentTimeMillis());

        // Icona della notifica
        notificationBuilder.setSmallIcon(R.drawable.ic_notifica);

        // Creiamo il pending intent che verrà lanciato quando la notifica
        // viene premuta
        //System.out.println("definisco l'intent per la notifica");
        Intent notificationIntent = new Intent(this.getApplicationContext(), MostraNotifica.class); //eventualmente qui devo collegare le info per l'intent da stampare
        notificationIntent.putExtra("titolo", titolo);
        notificationIntent.putExtra("testo", testo);
        imgUrl = imgUrl.replaceAll(" ", "%20");
        notificationIntent.putExtra("imgUrl", "http://www.ac-online.it/public/"+imgUrl);
        PendingIntent contentIntent = PendingIntent.getActivity(this.getApplicationContext(), 1,notificationIntent, 0);
       // System.out.println("ho finito di definire la notifica");
        notificationBuilder.setContentIntent(contentIntent);

        System.out.println("stamp " +titolo + testo + id); //here stamp the correct value

        // Impostiamo il suono, le luci e la vibrazione di default
        notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE);
       // System.out.println("sto per mostrare la notifica");

      mNotificationManager = (NotificationManager) this.getApplicationContext().getSystemService(this.getApplicationContext().NOTIFICATION_SERVICE);
      Notification notification = notificationBuilder.build();
      notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
      mNotificationManager.notify(id, notification);
     //   System.out.println("notifica stampata");


}

1 个答案:

答案 0 :(得分:6)

像这样创建待处理的意图

PendingIntent.getActivity(this.getApplicationContext(), (int)(Math.random() * 100), notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);