android - AndroidManifest.xml 中的两个主要 Activity

标签 android android-manifest

我想在我的应用中有两个主要 Activity 。所以在我的 list 中我放了:

<activity
    android:name="mypackage1.MainActivity"
    android:label="@string/title_activity_main">

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

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

<activity
    android:name="mypackage2.MainActivity2"
    android:label="@string/title_activity_main2">

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

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

</activity>

在我的应用程序菜单中创建了两个图标。但是当我点击它们中的每一个时,第一个 Activity MainActivity 总是会启动。有可能有两个主要 Activity 吗?如果是这样,我所做的有什么问题? 谢谢

最佳答案

LAUNCHER Intent 过滤器决定了应用程序抽屉/启动器中显示的内容。这就是显示两个图标的原因。

但是,您还设置了 DEFAULT Intent 过滤器,它为整个包设置了默认的 Activity。由于您设置了两次,因此您会遇到第一个/最新注册的优先级问题。当您删除 DEFAULT 过滤器时,您将能够启动您在启动器中单击的任何内容。

简而言之,从两个 Activity 中删除以下行:

<category android:name="android.intent.category.DEFAULT" /> 

关于android - AndroidManifest.xml 中的两个主要 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15526805/

相关文章:

java - 如何从android中的谷歌应用引擎数据存储中获取数据

android - build 时 Dagger 异常。错误 :Execution failed for task ':app:compileDebugJavaWithJavac' . java.lang.IllegalStateException

android - 在我的情况下使用 LayoutInflater 时如何删除旧内容并显示新内容?

java - 请我需要有关 list 合并失败并出现多个错误的解决方案

android - 错误类型 3 错误 : Activity class {} does not exist

c# - 调试 HTTP/1.1 400 错误请求的可视化 Web 开发人员 Web 服务

android - 启动 Activity 时禁用方向动画

android - 如何创建适用于深色和浅色主题的 Android 操作栏?

android - 如何阻止Android应用程序在其上绘制? (避免Cloack&Dagger攻击)

android - 如何像启动画面一样只运行一次 Activity