启动Android应用程序时启动的活动太多

启动Android应用程序时启动的活动太多,android,android-activity,android-manifest,Android,Android Activity,Android Manifest,我正在确认创建活动 我的Manifest.xml如下所示: <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".FirstActivity" android:label="@string/app_name"> <intent-filter> <action an

我正在确认创建活动

我的Manifest.xml如下所示:

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
 <activity android:name=".ThirdActivity"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

您可以看到属性
action-android:name=
属性是
“android.intent.action.MAIN”
category-android:name=
是所有活动的
“android.intent.category.LAUNCHER”

当应用程序启动时,它调用FirstActivity。 然后调用无用的活动,如ThirdActivity或SecondActivity

在本例中,我的
manifest.xml
正确吗? 或者,是否需要将另一个属性设置为第二个和第三个活动? 如果是,那是什么

我想知道
manifest.xml
文件是否适合我的情况。 请告知。

尝试此配置:

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>
 <activity android:name=".ThirdActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>

尝试以下配置:

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".SecondActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>
 <activity android:name=".ThirdActivity" android:label="@string/app_name">
    <intent-filter>
    </intent-filter>
</activity>

将as消息视为用于启动
活动的消息。因此,我可以创建一个
Intent
来查看网页,并创建一个具有知道如何查看网页的活动的应用程序—最有可能的是浏览器—可以在执行操作时拦截他的意图

您可以使用清单的
部分告诉Android哪些活动可以对哪些意图采取行动

意图是一种特殊的意图。当应用程序启动时,它会被发送到应用程序,基本上它会说“Go!”,因此应该首先显示的
活动需要通过正确定义
来拦截它

由于这三个活动的过滤器中都有
MAIN
,因此它们都响应了启动应用程序的请求。因此,您应该将该
仅用于
FirstActivity

想象一条用于启动
活动的as消息来执行某项操作。因此,我可以创建一个
Intent
来查看网页,并创建一个具有知道如何查看网页的活动的应用程序—最有可能的是浏览器—可以在执行操作时拦截他的意图

您可以使用清单的
部分告诉Android哪些活动可以对哪些意图采取行动

意图是一种特殊的意图。当应用程序启动时,它会被发送到应用程序,基本上它会说“Go!”,因此应该首先显示的
活动需要通过正确定义
来拦截它


由于这三个活动的过滤器中都有
MAIN
,因此它们都响应了启动应用程序的请求。因此,您应该只为
FirstActivity

设置
,这是使用
对于多个活动,手机的启动程序菜单将显示多个图标

来自文档:

活动可以使用的类别\u启动器 是任务的初始活动,并且 在顶级应用程序中列出 发射装置


使用的另一个问题是
对于多个活动,手机的启动程序菜单将显示多个图标

来自文档:

活动可以使用的类别\u启动器 是任务的初始活动,并且 在顶级应用程序中列出 发射装置


好啊谢谢第二个和第三个活动看起来像子活动吗?是的,您可以使用Intents.Ok在后面启动它们。谢谢第二个和第三个活动看起来像子活动吗?是的,您可以使用意图在后面启动它们。