两个发射器活动

Ore*_*est 44 android android-activity

我有两个标有intent过滤器的活动

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />

<application
    android:name=".MyApp"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <!-- work order activity -->
    <activity
        android:name=".app.WorkOrderActivity"
        android:label="@string/work_order"
        android:taskAffinity="com.package.task_for_work_order_activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <!-- inventory activity -->
    <activity
        android:name=".app.InventoryActivity"
        android:label="@string/inventory"
        android:taskAffinity="com.package.task_for_inventory_activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

问题是,当我安装apk文件时,没有显示任何活动,因为据我所知,系统无法指定应显示哪些活动.

我真的需要在启动器中显示两个活动,所以请不要提供有关从第二个活动中删除intent-filters的建议,或者如果你这样做,请提供另一种在启动器中显示两个图标的方法.

Mar*_*jøl 78

您需要通过将以下行添加到intent-filter来指定哪个活动是默认活动:

<category android:name="android.intent.category.DEFAULT"/>
Run Code Online (Sandbox Code Playgroud)

将其插入默认活动并保留其余活动.然后它应该工作.

您可能还希望使用该属性为第二个活动添加不同的图标 android:icon="@drawable/myothericon"

  • __最新的Android版本_ - 如果有多个启动器活动,如果我们没有放置这个`category`标签,那么Android清单文件中首先提到的活动将作为启动活动启动. (6认同)