android如何比较未决意图

Ste*_*ler 21 android alarmmanager android-intent android-pendingintent

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);
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ser 25

要确定2 PendingIntents是否匹配,以下内容必须相等:

  • 创建requestCode时使用的参数PendingIntent
  • Intent行动
  • Intent类别
  • Intent数据
  • IntentMIMETYPE
  • Intent包装
  • IntentCOMPONENT

额外费用不予考虑.

您可以在PendingIntent摘要文档Intent.filterEquals()中阅读更多内容.

  • 我正在寻找**Extras**部分,谢谢! (2认同)