我正在确认创建活动。
我的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。
然后调用无用的Activity,例如ThirdActivity或SecondActivity。
在这种情况下,我的manifest.xml
是否正确?
或者,我是否需要为Second和Third活动设置另一个属性? 如果是这样,那是什么?
我想manifest.xml
文件适合我的情况。
请告知。
提前致谢。
答案 0 :(得分: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>
答案 1 :(得分:1)
将Intent
视为用于启动Activity
做某事的消息。所以我可以创建一个Intent
来查看一个网页和一个活动,该活动知道如何查看网页 - 很可能是浏览器 - 可以拦截他的意图作为行为。
您告诉Android哪些活动可以使用您的清单<intent-filter>
部分对哪些意图采取行动。
MAIN
Intent
是一个特殊的。这是在应用程序启动时发送到应用程序,基本上它说“去!”因此,首先要显示的Activity
需要通过正确定义<intent-filter>
来拦截它。
由于您的过滤器中包含MAIN
的所有三个活动,因此它们都响应了启动应用程序的请求。因此,<intent-filter>
仅适用于FirstActivity
。
答案 2 :(得分:1)
使用的其他问题之一
<category android:name="android.intent.category.LAUNCHER" />
针对多项活动,电话的启动器菜单会显示多个图标......
来自文档:
CATEGORY_LAUNCHER活动可以 是任务的初始活动 列在顶级应用程序中 发射器。