Как передать данные из PendingIntent

343
05 января 2017, 05:39

У меня есть код в сервисе:

Intent intent = new Intent(this,ActivityFragments.class);
    intent.putExtra("ExamFragment","ExamFragment");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);
            mBuilder.setContentIntent(pendingIntent);
            mBuilder.setSmallIcon(R.drawable.icon);
            mBuilder.setContentTitle("Уведомление");
            mBuilder.setContentText("Вам нужно срочно проверить результаты");
    mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(001, mBuilder.build());

Это код вызывает уведомление. Как мне сделать так: Записать некий ключ в PendingIntent и передать его активности(при нажатии на уведомление), и соответственно достать его?

Answer 1

Вам нужно помещать нужные данные в Intent, на основе которого создаётся ваш PendingIntent. Помещать нужно в Bundle интента. Делать это можно двумя способами:

  1. Создать объект типа Bundle, наполнить его данными с помощью методов типа Bundle#putString("key", "value") и присвоить его интенту методом Intent#putExtras(Bundle b)
  2. Поместить инфу в уже имеющийся Bundle интента методом Intent#putExtra("key", value) где value это примитив или объект, реализующий интерфейсы Parcelable или Serializable

Далее, после клика по уведомлению в вашем случае запустится актвити и будет вызван её метод Activity#onNewIntent(Intent intent) куда и придёт созданный и наполненный вами Intent, из которого вы можете получить записанные вами данные

READ ALSO
Взять задач на работе или изучать технологии самостоятельно? [требует правки]

Взять задач на работе или изучать технологии самостоятельно? [требует правки]

В настоящий момент я работаю серверным Java разработчиком на нескольких небольших и не самых важных для компании проектахНа них я серверный...

295
Как сменить фрагмент в методе onNewIntent

Как сменить фрагмент в методе onNewIntent

Как сменить фрагмент в методе onNewIntent, если все происходит тут:

260
Как передавать данные каждые 15 секунд?

Как передавать данные каждые 15 секунд?

Есть приложение, в котором получаю данные с EditText и GPS и отправляю в БД MySQL удаленно через HttpURLConnectionЭто надо делать через каждые 15 секунд после...

255
Не работает метод add в ArrayList

Не работает метод add в ArrayList

Есть готовый код класса коллекцииОн работает

298