androidlauncherandroid-homebutton

Implement Home Button in custom Launcher


I've written a custom Launcher and it works pretty nice. The Launcher has some pages filled with applications. I want to implement, that the variable that represents the page number is set to 0, if the homebutton is pressed. So if you are on a different page of the launcher and press the homebutton, you enter the starting page. I've searched a lot, but couldn't find an answer that worked for me. I've set the app as an launcher in the manifest.

   <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

Is it possible to achieve this? Just change the value of one variable, if the home button is pressed and leave the rest of the home button, as it is.


Solution

  • For everybody who want to do the same thing. that's the way i solved it: I added the following to the manifest:

    <activity
        android:launchMode="singleTask"
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true">
    

    and wrote this into the java activity:

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        if (Intent.ACTION_MAIN.equals(intent.getAction())) {
            final boolean alreadyOnHome =
                    ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
                            != Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            if (alreadyOnHome) {
                Log.d("whatever", "Home pressed");
            }
        }
    }
    

    I got it from here: CyanogenMod trebuchet