两个发射器活动

我有两个活动标有意图filter

<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文件,没有显示活动,因为,据我所知系统不能指定应显示什么活动。

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

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

 <category android:name="android.intent.category.DEFAULT"/> 

插入这个默认的活动,并保持其余。 那么它应该工作。

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

我认为这是因为“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> 

似乎有可能通过使用任务亲缘关系属性有多个启动活动。 请参阅https://stackoverflow.com/a/3270422/819904上的答案;

添加定义到两个intentfilter的android:name属性的<action>项目:

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