当一个带有 intent-fitler 的活动只有 action_MAIN 而没有提到类别时,这意味着啥?

Posted

技术标签:

【中文标题】当一个带有 intent-fitler 的活动只有 action_MAIN 而没有提到类别时,这意味着啥?【英文标题】:What does it mean when an activity with intent-fitler just has action_MAIN and no category mentioned?当一个带有 intent-fitler 的活动只有 action_MAIN 而没有提到类别时,这意味着什么? 【发布时间】:2017-05-22 08:28:44 【问题描述】:

我知道要解决隐式意图,我们需要带有 action 和 category_default 的意图过滤器。

    但我的问题是,如果使用意图过滤器声明的活动怎么办 有行动,但没有类别。 1a) 这个意图过滤器有什么作用,它的目的是什么?

    如果有几个这样的活动呢?

        <activity android:name="org.A.C"
            android:theme="@style/NoTitle"
            android:launchMode="singleTop"
            android:screenOrientation="behind">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    
        <activity android:name="org.A.B"
            android:theme="@style/NoTitle"
            android:launchMode="singleTop"
            android:screenOrientation="behind">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
    

【问题讨论】:

【参考方案1】:

但我的问题是,如果使用意图过滤器声明的活动带有操作,但没有类别。

该活动将被忽略,因为它没有指定类别,因此不会匹配任何有类别的Intent。如果startActivity() 使用的所有Intent 对象未指定其他类别,则它们都将添加到DEFAULT 类别中。

如果有几个这样的活动呢?

那么你有几个将被忽略的活动。

【讨论】:

以上是关于当一个带有 intent-fitler 的活动只有 action_MAIN 而没有提到类别时,这意味着啥?的主要内容,如果未能解决你的问题,请参考以下文章

带有开关按钮的 Android ListView - 一次只有一个开关处于活动状态

带有大标题的 UISearchController 在选项卡栏中崩溃,“只有一个带有顶部边界的调色板可以在过渡之外处于活动状态”

第二个活动没有打开

只有部分 href 链接处于活动状态

当活动屏幕首次在 Android Studio 上加载时,如何在隐藏的背景中发送带有当前位置数据的 SMS 文本消息?

Flowable入门系列文章38 - 默认顺序流程