Android: как запустить ожидание намерения из другого действия с дополнительными функциями?

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

Notification notification = new Notification(icon, tickerText, when);
    Context context = getApplicationContext();

Intent intentOptionDialog = new Intent(Safety_Check_Service.this, Dialog_Safety_Check.class);
    intentOptionDialog.putExtra("startID",startId);
    intentOptionDialog.putExtra("CheckInID", CheckInId);
    intentOptionDialog.putExtra("Frequency", Frequency);
    intentOptionDialog.putExtra("flagFirstShedule", true);

        stopID = (startId + 17);

    intentOptionDialog.putExtra("stopID", stopID);

    PendingIntent contentIntent = PendingIntent.getActivity(Safety_Check_Service.this, DIALOG_ID, intentOptionDialog, 0);

Но моя проблема в том, что я хочу запустить эти ожидающие намерения из другого действия. Отложенные намерения созданы. Как я могу запустить эти ожидающие намерения из другого действия и как я могу получить дополнительные функции, которые были установлены с ожидающими намерениями?

Пожалуйста помогите.


person Vipul Purohit    schedule 18.04.2012    source источник
comment
см. эту статью iserveandroid.blogspot.com/2011/03 /   -  person Zaz Gmy    schedule 18.04.2012
comment
Я видел это. Но у меня нет объекта ожидающего намерения в службе, я не могу получить к нему доступ. Я должен создать новый.   -  person Vipul Purohit    schedule 18.04.2012


Ответы (2)


Я думаю, что у вас есть 2 части здесь:

  1. Попробуйте использовать ответ, который я дал в отслеживание смс, отправленных в Android: добавьте флаг FILL_IN_SELECTOR при создании PendingActivity, чтобы заставить его нести дополнительные функции.
  2. Получив PendingIntent, вы можете просто вызвать send способ запустить его.
person Femi    schedule 18.04.2012

Вы можете добавить данные в Intent, прежде чем передавать их с помощью PendingIntent

Сначала создайте намерение и добавьте данные

    val pendingIntent = Intent(context, MainActivity::class.java)
    pendingIntent.putExtra(PAGE_KEY, HOME.name)

Теперь создайте отложенное намерение из этого намерения с флагом PendingIntent.FLAG_UPDATE_CURRENT для обновления.

       PendingIntent.getActivity(
                    context, 0, pendingIntent, PendingIntent.FLAG_UPDATE_CURRENT)

Теперь в запущенном методе onCreate доступ к нему выглядит следующим образом

  if (intent != null) {
            val pageValue: String? = intent.getStringExtra(PAGE_KEY)
            pageValue?.let {
             // do whatever you want

            }
person Hitesh Sahu    schedule 08.05.2019