Я планирую отправить несколько намерений на BroadcastReceiver.
Разница между каждым намерением - это время, когда оно будет получено, и содержащиеся в нем дополнительные данные.
Теперь мне нужно разрешить пользователю отменять определенные тревоги. Согласно javadoc AlarmManager.cancel (), он сравнивает намерения, используя метод filterEquals:
http://developer.android.com/reference/android/content/Intent.html#filterEquals(android.content.Intent)
Теперь проблема в том, что согласно filterEquals все мои намерения одинаковы. Метод проверяет «действие, данные, тип, класс и категории».
И уникальные данные либо в намеренном дополнительном пакете, либо как время в AlarmManager.
Я попытался изменить любой из этих параметров - например, используя:
intent.setData(Uri.withAppendedPath(Uri.EMPTY, "some_unique_data"));
Это сделало бы каждое намерение уникальным в соответствии с методом filterEquals, но после изменения данных на что-то вроде этого мое намерение больше не достигает BroadcastReceiver.
Какой конкретный бит данных я могу изменить, чтобы каждое намерение было уникальным в соответствии с filterEquals и все еще могло быть получено моим простым BroadcastReceiver?
Может быть, я могу каким-либо образом изменить свой приемник?