Я столкнулся с той же проблемой, я сделал следующее:
1) Я создал поле int, которое я создаю в своей основной деятельности в качестве статического поля.
2) Я получаю значение этой переменной в onCreate()
основной активности из базы данных приложения.
3) Каждый раз, когда я создаю новую тревогу, я получаю новый код запроса через функцию:
public static int getRequestCode() {
int temp = this.requestCode++;
// Update the database value with the current requestCode value
return temp;
}
4) В моем случае я добавил новое поле в класс сигналов тревоги под названием requestCode, чтобы я мог отслеживать, какой код запроса для какого сигнала тревоги, так как я уже сохраняю сигналы в своей базе данных, для вашего случая я не уверен как именно ваше приложение, но я думаю, вам нужно найти способ сохранить это значение для каждого сигнала тревоги.
Я не уверен, что это будет очень полезно, так как я не уверен, используете ли вы базу данных для своего приложения или нет, но я рекомендую вам рассмотреть возможность создания базы данных, даже локальной, если вы не заботитесь о том, чтобы данных на сервере пока нет (вы можете использовать Библиотеку комнат для этого, и это очень просто, вот ссылка https://developer.android.com/topic/libraries/architecture/room) , так как я считаю, что это, безусловно, создаст вам много проблем в долгосрочной перспективе, поскольку система на самом деле не создает новый PendingIntent при его инициации, она возвращает захватывающий токен, если все параметры соответствуют
Надеюсь, это было полезно:)