android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?

Posted 阿迷创客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?相关的知识,希望对你有一定的参考价值。

android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?

请看如下案例,看一次,就记住了……

1. AndroidManifest 案例

  • 如下XML中,声明了两个activity
  • 并且,同时都设定了类别了"android.intent.category.LAUNCHER"
  • 包名:com.test.TestStrace
  • src/main/AndroidManifest.xml
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TestStrace">
        <activity
            android:name=".TestIntent"
            android:label="@string/title_activity_test_intent">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

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

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
  • 如下显示APP名称为 TestStrace
<resources>
    <string name="app_name">TestStrace</string>
    <string name="title_activity_test_intent">TestIntent</string>
    <!--
    This string is used for square devices and overridden by hello_world in
    values-round/strings.xml for round devices.
    -->
    <string name="hello_world">Hello Square World!</string>
</resources>

2. 源码结构图示



3. 运行结果

  • 如下图所示,在Launcher的all app页面,同时显示了2个入口:
  • 入口一:APP名称 ,TestStrace
  • 入口二:TestIntent

4. 结论

CATEGORY_LAUNCHER 官网说明:
该 Activity 是任务的初始 Activity,在系统的应用启动器中列出。

<category android:name="android.intent.category.LAUNCHER" />
1.可以被多个Activity使用
2. 所声明的Activity会在launcher的all app页面显示其入口图标

以上是关于android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?的主要内容,如果未能解决你的问题,请参考以下文章

unity android同时调用多个jar,activity间怎么切换

Android动画--Activity界面180度翻转

如何设定Android Activity间切换时的动画

Android开发之旅-Fragment和Activity之间onCreateOptionsMenu的联系

Android中Activity之间的数据传递ngti

Android四大组件——Activity跳转动画淡出淡入滑出滑入自定义退出进入