Документация для PendingIntent.FLAG_NO_CREATE читает:
Флаг, указывающий, что если описанный PendingIntent еще не существует, просто возвращайте null вместо его создания.
Мой вопрос: Какие критерии используются для сравнения PendingIntents?
Я предполагаю, что под капотом этот флаг использует PendingIntent.equals, но я не совсем уверен, какие критерии используют функция, Используется ли действие action, requestCode, категории, дополнения (я догадываюсь нет) и т.д.?
Context:
Я хочу запустить будильник с ожидающим намерением, если мой будильник еще не настроен. В частности, я следую этому answer.
Intent i = new Intent(applicationContext, MyService.class);
i.setAction("myAction");
PendingIntent pi = PendingIntent.getService(applicationContext, /*requestCode*/0, i, PendingIntent.FLAG_NO_CREATE);
if (pi != null) {
AlarmManager alarmMgr = (AlarmManager)applicationContext.getSystemService(Context.AlarmService);
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_HOUR, AlarmManager.INTERVAL_HOUR, pi);
}