0

在 Android API 中,我们被告知以下内容:

如果标签包含 AAR,则标签调度系统按以下方式调度:

  1. 尝试像往常一样使用意图过滤器启动 Activity。如果匹配 Intent 的 Activity 也匹配 AAR,则启动 Activity。

  2. 如果过滤 Intent 的 Activity 与 AAR 不匹配,如果多个 Activity 可以处理该 Intent,或者如果没有 Activity 处理该 Intent,则启动 AAR 指定的应用程序。

  3. 如果没有应用程序可以通过 AAR 启动,请转到 Google Play 下载基于 AAR 的应用程序。

第 2 部分有点令人困惑。如果意图与多个Activity匹配,则我们启动应用程序。因此,如果我过滤 NFC 意图的活动不是我的默认应用程序启动活动,我不会在多个活动过滤意图的情况下启动它?

换句话说,如果我的应用程序有一个默认的活动“A”和另一个过滤 NFC 意图的活动“B”,那么没有任何其他活动过滤该意图,AAR 意图将启动 B。但如果其他人过滤意图,我将获得不同的行为,并且将启动活动 A。

这是否意味着我也可以让意图过滤器始终位于活动 A(默认启动活动)上,因为总有机会将意图传递给它?

希望这很清楚,

山姆

4

1 回答 1

1

所以如果多个Activity过滤器匹配,Android默认主应用Activity。

似乎比选择一个(哪个?)匹配的活动更好。如果您编写“竞争”过滤器,这就是您得到的,但没有人强迫您;-)

于 2012-10-26T08:43:51.900 回答