PendingIntent отправляет void активности - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь отправить данные из уведомления в мой класс newsdetails.но это всегда возвращает ноль.Я пытался проверить, действительно ли у меня есть данные в моих переменных перед отправкой, и, кажется, я делаю, поэтому я пытаюсь выяснить, почему

, так что это мой MyFirebaseMessageService.class

  Intent intent = new Intent(this, NewsDetails.class);
        //intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
       PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

         String Link = data.get("picture_url");
         String Date = data.get("date");
         String Title = data.get("title");
         String Description = data.get("description");
         Log.d("Dateter", Date);
         if (Link != null ) {

             intent.putExtra("Link",Link);
             intent.putExtra("ThumbNail",Link);
         }
         if (Date != null ) {
             intent.putExtra("Date",Date);
         }
        if (Title != null  ) {

            intent.putExtra("Title",Title);
        }
        if (Description !=null ) {
            intent.putExtra("Description",Description);
        }


    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, "channel_id")
                .setContentTitle(notification.getTitle())
                .setContentText(notification.getBody())
                .setAutoCancel(true)
                .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                .setContentIntent(pendingIntent)
                .setContentInfo(notification.getTitle())
                .setLargeIcon(icon)
                .setColor(Color.BLUE)
                .setLights(Color.BLUE, 1000, 300)
                .setDefaults(Notification.DEFAULT_VIBRATE)
                .setSmallIcon(R.drawable.logo24x24)
                .addAction(R.drawable.logo24x24,"Open",pendingIntent);

иэто часть моего Newsdetails.class * (Обратите внимание, что, когда я использую его обычным образом, чтобы открыть статью из моего приложения, она открывается нормально. Она получает только нулевое значение из уведомления. Но данные находятся в MyFirebaseMessageService.class до запуска намерения.Есть ли другой способ получить данные из pendingitentents? Я использую тот же класс по 2 причинам, но те же переменные.

  Bundle bundle = getIntent().getExtras();
        Log.d("Title2",bundle.getString("Title"));
        date.setText(bundle.getString("Date"));
        titletext.setText(bundle.getString("Title"));

1 Ответ

0 голосов
/ 17 ноября 2018

Вы должны добавить «дополнительные» к Intent до вызова PendingIntent.getActivity().

Как вы можете видеть, вы добавляете "дополнительные" к Intent, но после вы получаете PendingIntent, который окутывает Intent. PendingIntent, который вы передаете Notification, не содержит «дополнений».

...