Как 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);
}