Как получить данные о намерениях уведомлений

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

    Intent resultIntent = new Intent(context, MovieDetailActivity.class);
        resultIntent.putExtra(Constants.MOVIE_ID, cursor.getString(
                cursor.getColumnIndexOrThrow(DatabaseHelper.ID)));
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
        stackBuilder.addNextIntentWithParentStack(resultIntent);
        PendingIntent resultPendingIntent =
                stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                .setSmallIcon(R.drawable.ic_download)
                .setContentIntent(resultPendingIntent)
                .setContentTitle(cursor.getString(
                        cursor.getColumnIndexOrThrow(DatabaseHelper.NAME)))
                .setAutoCancel(true)
                .setContentText(cursor.getString(
                        cursor.getColumnIndexOrThrow(DatabaseHelper.REALEASE_DATE)));
        NotificationManager notificationManager = (NotificationManager)
                context.getSystemService(context.NOTIFICATION_SERVICE);

        notificationManager.notify(1, builder.build()
        );

В этой строке я отправляю некоторые данные, используя намерение.

resultIntent.putExtra(Constants.MOVIE_ID, cursor.getString(
                cursor.getColumnIndexOrThrow(DatabaseHelper.ID)));

Я получаю данные здесь, но они пустые.

Intent receivedIntent = getIntent();
    mMovieId = receivedIntent.getIntExtra(Constants.MOVIE_ID, -1);

Пожалуйста, помогите, я потратил на это целый день.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно изменить свой PendingIntent для:

PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0 , resultIntent, PendingIntent.FLAG_CANCEL_CURRENT);

Надеюсь, это решит вашу проблему.

Ответ принят как подходящий

Вы переходите в строку намерения, поэтому вы не можете получить Integer из намерения, поэтому вы получаете null.

Так что измените эту строку:

mMovieId = receivedIntent.getIntExtra(Constants.MOVIE_ID, -1);

к

 mMovieId = receivedIntent.getStringExtra(Constants.MOVIE_ID);  
// and simply parse string to integer  
       int id = Integer.parseInt(mMovieId);

Спасибо, братан, я решил проблему, но теперь сталкиваюсь с другой проблемой. Я напрямую попадаю на MovieDetailActivity, это хорошо, но я не могу вернуться к основному действию, так как его нет в стеке, и приложение завершается.

Ikram Khan Niazi 02.11.2018 18:16

Что вы имеете в виду под «его нет в стеке»? У тебя нет кнопки, чтобы вернуться, ты это имеешь в виду?

Domin 02.11.2018 18:35

Другие вопросы по теме