【问题标题】:How does Android different between multiple components that have same action and category?Android 在具有相同操作和类别的多个组件之间有何不同?
【发布时间】:2014-07-08 06:28:14
【问题描述】:

我查找了intent filters,发现当“Android通过将intent的内容与设备上其他应用程序的manifest文件中声明的intent filters进行比较,找到合适的组件启动”时会使用它们(@987654321 @)

在我的清单文件中,我有

<intent-filter>
        <action android:name="android.intent.action.MAIN" />

         <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

从阅读该指南中可以看出,该活动可以处理具有主要动作和启动器类别的隐式意图。

但是,如果我在清单文件中有多个具有相同意图过滤器的应用程序怎么办。我知道一些隐含的意图将通过启动器的主要和类别的动作被调用。 Android 操作系统如何知道选择此应用程序?

【问题讨论】:

    标签: android android-intent android-implicit-intent


    【解决方案1】:

    当您使用相同的意图过滤器(action=main 和 category=launcher)定义了多个活动时,android 会使用该意图过滤器(action=main 和 category=launcher)获取层次结构中定义的第一个活动并启动它当用户点击应用图标时。

    【讨论】:

    • 层次结构按照您在 android 清单中定义的顺序。假设您有具有相同意图过滤器的 Activity1 和 Activity2,但首先定义了 Activity2,然后您定义了 Activity1,然后将启动 Activity2。
    • @Rajn 不,操作系统将显示与给定意图过滤器匹配的活动的对话框,然后您可以选择要运行的活动
    • 实际上我用上下文回复了同一个应用程序,该应用程序具有两个具有相同意图过滤器的活动(action=main 和 category=launcher)。但是,如果我从我的应用程序中请求启动另一个具有特定意图操作的应用程序,那么您的百分比是正确的。
    • OP 说“但是,如果我在清单文件中有多个具有相同意图过滤器的应用程序怎么办。”,多个应用程序,而不是同一个应用程序中的多个家庭活动
    猜你喜欢
    • 2017-11-22
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多