Reputation: 34016
I've built a project that contains different packages and activities, say:
com.example.package1.Activity1
com.example.package2.Activity2
The first package holds a launcher. On my project manifest file this activity is listening to the home intent:
// Launcher
<activity android:name=".package1.Activity1" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
// package2.activity1
<activity android:name=".package2.activity1" android:label="@string/package2_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
My problem is that when a user clicks Home
the launcher isn't opened, instead the user is taken to the last opened activity of the app. EG: User opens package2.MainActivity from default launcher > goes to another app > clicks home > package2.MainActivity is opened again.
Is this normal? How do I make sure the device Home
button takes to .package1.activity1?
Upvotes: 0
Views: 528
Reputation: 95646
If you are trying to create a HOME-screen replacement, then the activity for that needs to have the following in its <activity>
tag in the manifest:
android:launchMode="singleInstance"
This will ensure that only one instance of this activity ever exists and that when this activity launches other activities that they will all go into new tasks and not be a part of the HOME-screen replacement's task.
Upvotes: 1
Reputation: 573
I am not sure but please try to this code:
// package2.activity1
<activity android:name=".package2.activity1" android:label="@string/package2_name" >
<intent-filter>
<action android:name="android.intent.action.View" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Upvotes: 0