Как Android сравнивает ожидающие намерения

Документация дляPendingIntent.FLAG_NO_CREATE гласит:

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

Мой вопрос:Какие критерии используются для сравнения PendingIntents?

Я думаю, под капотом этот флаг используетPendingIntent.equals, но я не совсем уверен, какие критерии использует эта функция. Использует ли это действие, requestCode, категории, дополнения (наверное, нет) и т. Д.?

Контекст:

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

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);
}

Ответы на вопрос(1)

Ваш ответ на вопрос