Передача переменной в действие через Intent всегда одинакова - PullRequest
0 голосов
/ 13 мая 2011

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

Теперь, первый раз, когда он работает гладко, второй раз, когда переданная переменная не обновляется. Это всегда первая переданная переменная. Я что-то упустил?

Вот снимки:

C2DM Уведомление

Intent notificationIntent = new Intent(context, BMBPad.class);
notificationIntent.putExtra("seqid", message);              
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

Вот как я читаю переменную в Деятельности, вызываемую Намерением.

extra = this.getIntent().getExtras();
seqidi = extra.getString("seqid");

Кто-нибудь знает, почему это происходит?

Ответы [ 3 ]

0 голосов
/ 05 апреля 2016

Вы можете попытаться добавить этот фрагмент в действие, вызванное намерением.

/**
 * Override super.onNewIntent() to let getIntent() fetch the latest intent
 * that was used to start this Activity rather than the first intent.
 */
@Override
public void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    setIntent(intent);
}
0 голосов
/ 20 августа 2016

переопределите метод onNewIntent (), получите вашу переменную следующим образом:

@Override
public void onNewIntent(Intent intent){
super.onNewIntent(intent);
seqid = intent.getStringExtra("seqid","");

}

, поскольку повторное выполнение действия вызовет метод onNewIntent ().

0 голосов
/ 14 февраля 2012

Вам необходимо использовать флаг PendingIntent.FLAG_UPDATE_CURRENT

В вашем случае:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

Пожалуйста, посмотрите здесь: Android PendingIntent

...