我有两个标有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>
问题是,当我安装apk文件时,没有显示任何活动,因为据我所知,系统无法指定应显示哪些活动。
我真的需要在启动器中显示两个活动,所以请不要提供有关从第二个活动中删除intent-filters的建议,或者如果你这样做,请提供另一种方法在启动器中显示两个图标。
答案 0 :(得分:75)
您需要通过在intent-filter中添加以下行来指定哪个活动是默认活动:
<category android:name="android.intent.category.DEFAULT"/>
将其插入默认活动并保留其余活动。然后它应该工作。
您可能还想使用属性android:icon="@drawable/myothericon"
答案 1 :(得分:2)
我认为这是因为“android.intent.action.MAIN”动作,这对我有用:
<application>
<activity android:name=".MyActivityA" android:icon="@drawable/aicon" android:label="@string/app_name">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MyActivityB" android:icon="@drawable/bicon" android:label="@string/app_name">
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
答案 2 :(得分:2)
似乎可以通过使用任务关联属性来进行多次启动活动。请参阅https://stackoverflow.com/a/3270422/819904
上的答案答案 3 :(得分:2)
添加<action>
项,其中android:name
属性已定义到两个意图过滤器:
<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" />
<action android:name=".app.WorkOrderActivity"/>
<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" />
<action android:name=".app.InventoryActivity"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>