如果我已经在清单文件中使用了intent-filter,为什么我需要ifelse?

时间:2016-07-20 21:38:55

标签: android if-statement android-intent manifest receiver

好的,例如我们有一些像Trying to start a service on boot on Android这样的代码 为什么我必须在接收器中编写ifelse以进行意图类型验证?

1 个答案:

答案 0 :(得分:1)

您可能正在使用相同的接收器进行多次广播:

  • 有两个<intent-filter>元素,或
  • 通过对一个<intent-filter>元素执行多个操作,或
  • 通过将接收器用于隐式Intents(通过<intent-filter>)和显式Intents(其中Intent标识接收方的Java类)

在这些情况下,您可能需要检查传入的Intent以查看它是哪个广播,因此您知道如何继续。

但就这个样本而言,我不知道为什么他们会进行if测试。如果他们有else,那么他们根据Intent有两个不同的逻辑位,那就没有意义。