lisovaccaro
lisovaccaro

Reputation: 34016

Make home intent take to specific application activity?

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

Answers (2)

David Wasser
David Wasser

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

Mahesh Kavathiya
Mahesh Kavathiya

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

Related Questions