Привет, я столкнулся с этой проблемой.У меня есть приложение с двумя действиями: -Деятельность A (Основное действие), показывающее список автомобилей. -Если вы щелкаете по списку элементов, начинается действие «Б» с указанием сведений об автомобиле.
Из действия В можно загрузитьинформация, связанная с этим автомобилем, запускается служба C, отвечающая за загрузку, и уведомление добавляется в панель уведомлений.Если вы щелкнете по уведомлению, вы должны увидеть действие B с подробными сведениями об этом конкретном автомобиле.
Моя проблема заключается в следующем: действие B получает намерение с этим дополнительным: carID Так что в onCreate оно читает это дополнительное испросите в БД детали этого конкретного автомобиля.Когда я звоню из Б в Деятельности А, все работает нормально.Но когда я вызываю активность B из панели уведомлений, это не так.Здесь всегда подробно рассказывают о первой машине, которую я выбрал.Так, например, я загружаю сведения о Ferrari, а затем сведения о Lamborghini ....
В моем уведомлении я вижу 2 уведомления, но оба они открывают действие B, отображающее сведения о Ferrari.
ЭтоВот как я создаю уведомления внутри Сервиса C:
int icon = icona;
CharSequence tickerText = message;
long when = System.currentTimeMillis();
Context context = getApplicationContext();
CharSequence contentTitle = message;
CharSequence contentText = appName;
Intent notificationIntent;
notificationIntent = new Intent(this, ActivityB.class);
notificationIntent.putExtra("carId", carId);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
mNotificationManager.notify(NOT_ID, notification);
, и вот как я получаю намерение в Деятельности B:
Intent myIntent = getIntent();
appId = myIntent.getIntExtra("carId", 0);
В начале я не получил ни одногонамерение вообще из уведомления ..... тогда я добавил PendingIntent.FLAG_UPDATE_CURRENT, как вы можете видеть выше, и я получаю его, но это всегда первый.Я подтвердил, и я добавляю правильный carId для каждого намерения, но вместо этого я получаю еще один ...... и каждый раз при открытии уведомления появляется это сообщение журнала:
startActivity вызывается из неактивного контекста;форсирование Intent.FLAG_ACTIVITY_NEW_TASK для: Intent {cmp = market.finestraprincipale / .ApplicationActivity bnds = [0,101] [320,165] (имеет дополнительные функции)}
Может кто-нибудь помочь мне, пожалуйста ...