Создавайте новый ожидающий намек каждый раз в Android

Как мне создать ожидающее намерения каждый раз? В настоящее время мои существующие ожидающие намерения заменяются новым. Я попытался использовать FLAG_ONE_SHOT, а также CANCEL_CURRENT, но это не сработало.

Ответ 1

добавьте случайное число в код запроса следующим образом:

Intent intent = new Intent(context, YourClassname.class);
intent.putExtra("some data", "txt");  // for extra data if needed..

Random generator = new Random();

PendingIntent i=PendingIntent.getActivity(context, generator.nextInt(), intent,PendingIntent.FLAG_UPDATE_CURRENT);

Ответ 2

FLAG_CANCEL_CURRENT- если описанный PendingIntent уже существует, текущий отключается до создания нового.

FLAG_NO_CREATE - если описанный PendingIntent еще не существует, просто верните null вместо его создания.

FLAG_ONE_SHOT - этот PendingIntent можно использовать только один раз.

FLAG_UPDATE_CURRENT- если описанный PendingIntent уже существует, сохраните его, но замените его дополнительные данные тем, что находится в этом новом намерении.

Если вам действительно нужно одновременно несколько разных объектов PendingIntent (например, чтобы использовать в качестве двух уведомлений, показанных одновременно), вам нужно будет убедиться, что есть что-то, что отличается от них, чтобы связать их с различными PendingIntents. Это может быть любой из атрибутов Intent, рассмотренных Intent.filterEquals, или различных целых кодов запроса, предоставленных getActivity(Context, int, Intent, int), getActivities(Context, int, Intent[], int), getBroadcast(Context, int, Intent, int), or getService(Context, int, Intent, int).