I have two activities marked with intent 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>
The problem is, that when I'm installing apk file, there is no activity shown, because, as I understood system can't specify what activity should be shown.
I just really need two activities shown in launcher, so please don't give advice about removing intent-filters from second activity, or if you do so provide me another way to show two icons in launcher.
On latest Android versions - If there are more than one launcher activities and if we don't put this category tag then the activity which is mentioned first in the Android manifest file will get launched as start-up activity.
Launcher Activities are the activities that can be launched for a given intent. For example, when you press an app icon on the home screen, the StartActivity intent starts the activity you have specified as the launcher activity.
Yes, You can have more than one launcher activity in your application. This will not create any kind of compile-time or run time error. You will find two launcher logos of your application in your device can launch different activities as we defined in manifest.
category -- Gives additional information about the action to execute. For example, CATEGORY_LAUNCHER means it should appear in the Launcher as a top-level application, while CATEGORY_ALTERNATIVE means it should be included in a list of alternative actions the user can perform on a piece of data.
You need to specify which activity is the default one by adding the following line to your intent-filter:
<category android:name="android.intent.category.DEFAULT"/>
Insert this in the default activity and keep the rest. Then it should work.
You may also want to add a different icon to your 2nd activity with the attribute android:icon="@drawable/myothericon"
Add <action>
items with android:name
attributes defined to both intent filters:
<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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With