Intereting Posts

Дополнительные намерения дублируются при использовании FLAG_UPDATE_CURRENT в PendingIntent при создании уведомлений об андроидах

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

Notification notification = new Notification(R.drawable.applicationicon, Resources.getString("NewSaleNotification", context), System.currentTimeMillis()); // Hide the notification after its selected notification.flags |= Notification.FLAG_AUTO_CANCEL; Intent intent = new Intent(context, MainApplication.class); intent.putExtra("saleid", saleid); // to be sure the activity won't be restarted intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(context, SaleTitle, SaleMessage, pendingIntent); notificationManager.notify(saleid, notification); 

Когда я создаю PendingIntent, у меня есть 4 варианта: FLAG_CANCEL_CURRENT, FLAG_NO_CREATE, FLAG_ONE_SHOT и FLAG_UPDATE_CURRENT.

Определение последнего ( http://developer.android.com/reference/android/app/PendingIntent.html#FLAG_UPDATE_CURRENT ) – это то, что я хочу сделать, но оно не работает должным образом. Если я создам 2 уведомления, они оба имеют тот же самый «saleid», который является последним. Как я могу сделать несколько уведомлений с разными «saleid»?

Solutions Collecting From Web of "Дополнительные намерения дублируются при использовании FLAG_UPDATE_CURRENT в PendingIntent при создании уведомлений об андроидах"

Но он не работает так, как должен

Да.

Если я создам 2 уведомления, они оба имеют тот же самый «saleid», который является последним.

Это то, о чем говорит документация .

Как я могу сделать несколько уведомлений с дополнительной продажей differents?

Вариант №1: Поместите другую строку действий в каждое из ваших Intents . Это сделает их разными (с точки зрения filterEquals() ) и предоставит им отдельные PendingIntents . Однако, поскольку вы указываете компонент в Intent ( MainApplication.class ), действие не повлияет на то, как перенаправляется Intent .

Вариант №2: используйте разные requestCode (2-й параметр) для getActivity() . Хотя это задокументировано как «в настоящее время не используется», это приводит к PendingIntent различных PendingIntent объектов PendingIntent . Однако, поскольку это поведение недокументировано, оно может измениться в будущем.