【发布时间】:2011-02-04 15:48:23
【问题描述】:
在我看来,如果使用隐式无类别意图调用 startActivity,则只能启动具有指定默认类别 (android.intent.category.DEFAULT) 的意图过滤器的活动。
如果我们使用 startService 而不是 startActivity,则服务的意图过滤器中不需要该类别。
每个人都看到相同的行为吗?
它是否记录在 Android 官方文档的某处?
【问题讨论】:
标签: android
在我看来,如果使用隐式无类别意图调用 startActivity,则只能启动具有指定默认类别 (android.intent.category.DEFAULT) 的意图过滤器的活动。
如果我们使用 startService 而不是 startActivity,则服务的意图过滤器中不需要该类别。
每个人都看到相同的行为吗?
它是否记录在 Android 官方文档的某处?
【问题讨论】:
标签: android
我认为这是记录在案的。
见http://developer.android.com/reference/android/content/Intent.html:
类别(如果提供)必须全部 被活动列为 它处理的类别。也就是说,如果你 包括类别 CATEGORY_LAUNCHER 和 CATEGORY_ALTERNATIVE,那么您将 仅解析为具有 列出这两者的意图 类别。 活动会很频繁 需要支持 CATEGORY_DEFAULT 以便他们可以被找到 Context.startActivity().
我的经验是,如果在意图中明确设置了类,则可以将无类别活动与 startActivity() 一起使用。在这种情况下,不会进行意图匹配。
【讨论】: