0

我正在确认创建活动。

我的 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>

您可以看到 propertyaction android:name=属性 is"android.intent.action.MAIN"并且 category android:name=is"android.intent.category.LAUNCHER"用于所有活动。

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

在这种情况下,我的manifest.xml正确吗?或者,我是否需要为第二个和第三个活动设置另一个属性?如果是这样,那是什么?

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

4

3 回答 3

2

试试这个配置:

<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>
于 2009-12-24T02:29:19.047 回答
1

想想Intent用于开始Activity做某事的 as 消息。因此,我可以创建一个Intent查看网页的应用程序和一个带有 Activity 的应用程序,该应用程序知道如何查看网页 - 很可能是浏览器 - 可以拦截他的 Intent 作为对其的操作。

<intent-filter>您使用Manifest 的部分告诉 Android 哪些活动可以作用于哪些意图。

这是一个特殊的。它在启动时发送到应用程序,基本上它说“开始!” 因此,应该首先显示 which 需要通过正确定义来拦截它。MAIN IntentActivity<intent-filter>

由于您MAIN的过滤器中包含所有三个活动,因此它们都响应了启动应用程序的请求。所以你应该<intent-filter>只为FirstActivity.

于 2009-12-24T09:12:25.420 回答
1

用于多个活动的其他问题 <category android:name="android.intent.category.LAUNCHER" />之一是电话的启动器菜单将显示多个图标...

从文档:

CATEGORY_LAUNCHER 该活动可以是任务的初始活动,并列在顶级应用程序启动器中。

于 2009-12-24T11:35:08.363 回答